如何在插入之前将触发器写入哈希值?

use*_*537 2 sql-server triggers sql-server-2008

我有一个名为employees3 列的表:FirstNameLastNameSSN

数据每晚由 .Net 服务输入到该表中,这是我不愿意更新的。

我想要一个触发器,上面写着:

嘿,我看到您正在尝试在 SSN 列中插入一些内容...让我们在插入之前对其进行哈希处理。

Aar*_*and 5

一种方法是使用 INSTEAD OF TRIGGER:

CREATE TRIGGER dbo.HashSSN
ON dbo.tablename
INSTEAD OF INSERT
AS
BEGIN
  SET NOCOUNT ON;

  INSERT dbo.tablename(FirstName, LastName, SSN)
    SELECT FirstName, LastName, HASHBYTES('SHA1', SSN)
    FROM inserted;
END
GO
Run Code Online (Sandbox Code Playgroud)