在 SQL Server 2008 R2 中使用触发器在更新期间根据另一列的值更改一列的值
Use a trigger in SQL Server 2008 R2 to change the value of one column based on the value of another column during update
我需要在更新记录时根据同一 table 中另一列的值更改列的值。无法重新编码更新 table 的遗留应用程序来处理此问题。
基本逻辑是:
- 如果
DateShipped
不为空,设置OrderLocation = 4
希望我可以在 SQL Server 2008 R2 中使用更新触发器在数据库级别执行此操作。
谢谢。
CREATE TRIGGER tr_OrderLocation_Update
ON TableName
FOR UPDATE,INSERT
BEGIN
SET NOCOUNT ON;
UPDATE t
SET t.OrderLocation = 4
FROM TableName t INNER JOIN inserted i
ON t.PK_Column = i.PK_Column --<-- what ever the primary key column
WHERE i.DateShipped IS NOT NULL
END
我需要在更新记录时根据同一 table 中另一列的值更改列的值。无法重新编码更新 table 的遗留应用程序来处理此问题。
基本逻辑是:
- 如果
DateShipped
不为空,设置OrderLocation = 4
希望我可以在 SQL Server 2008 R2 中使用更新触发器在数据库级别执行此操作。
谢谢。
CREATE TRIGGER tr_OrderLocation_Update
ON TableName
FOR UPDATE,INSERT
BEGIN
SET NOCOUNT ON;
UPDATE t
SET t.OrderLocation = 4
FROM TableName t INNER JOIN inserted i
ON t.PK_Column = i.PK_Column --<-- what ever the primary key column
WHERE i.DateShipped IS NOT NULL
END