sql-server - 如何在插入前将触发器写入散列值?

标签 sql-server sql-server-2008 triggers

我有一个名为 employees 的表有 3 列:FirstName , LastName , 和 SSN .

数据每晚由 .Net 服务输入此表,我不太愿意更新。

我想要一个触发器:

Hey, I see you're trying to insert something in the SSN column... let's HASH that before it goes in.

最佳答案

一种方法是使用 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

关于sql-server - 如何在插入前将触发器写入散列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043739/

相关文章:

SQL Server SQL JOIN 帮助

sql - 按时间 block 查询记录并分组

tsql - 需要一些 tSQL 巫术 : SQL Update Based on Running Total

sql - Azure Bacpac 文件还原错误

SQL Server Management Studio 2008 R2 导出结构 + 数据

mysql - SIGNAL SQLSTATE '45000' 不停止插入

sql - 如何删除特定列的外键

php - 在私有(private)类中执行sql语句的问题

mysql - 删除多行时在 MySQL 表上触发

PHPMyAdmin 更新后触发器不起作用