在 'MD5' 附近插入哈希字节不正确的语法

Insert hashbytes Incorrect syntax near 'MD5'

我正在使用 SQL Server 2014。作为更大任务的一部分,我需要从 table 检测更新等,因此我正在实施 Hashbytes。 Hasbytes 字段定义为 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

但是,我一直收到错误消息:

Incorrect syntax near 'MD5'.

我哪里错了?

HashValue 别名之前缺少一个逗号,以将 Add3 与下一列分开。另外别名是倒过来的,应该是<expression> as AliasName.

Add3, -- Here comma
Hashbytes('MD5',CONCAT('|',Name, Add1, Add2, Add3)) as HashValue -- Inverted alias

此外,最好列出插入的 table 的列,以免顺序被错误解释:

INSERT INTO tbl_People (
    ID,
    Name,
    Col1,
    Col2,
    Col3,
    HashValue)
SELECT
    ...

multiple ways 在 SQL 服务器上使用列别名。