我正在使用SQL Server 2014。 作为更大任务的一部分,我需要从表中检测更新等,因此正在实现哈希字节。"哈字节"字段定义为varbinary(MAX)
。
这是我的 SQL:
INSERT INTO tbl_People
SELECT
id,
Name,
Add1,
Add2,
Add3,
HashValue as Hashbytes('MD5',CONCAT('|',Name, Add1, Add2, Add3))
from tbl_PeopleSource
但是,我只是不断收到错误:
"MD5"附近的语法不正确。
我哪里出错了?
在HashValue
别名之前缺少逗号,以将Add3
与下一列分开。别名也是反转的,应该<expression> as AliasName
.
Add3, -- Here comma
Hashbytes('MD5',CONCAT('|',Name, Add1, Add2, Add3)) as HashValue -- Inverted alias
此外,最好列出插入表的列,以免错误地解释顺序:
INSERT INTO tbl_People (
ID,
Name,
Col1,
Col2,
Col3,
HashValue)
SELECT
...
有多种方法可以在 SQL Server 上使用列别名。