我想调用 Update ... Set ... Where ... 来更新一个字段,只要那个邪恶的 ERP 流程正在改变另一个字段的值。
我正在运行 MS SQL。
我想调用 Update ... Set ... Where ... 来更新一个字段,只要那个邪恶的 ERP 流程正在改变另一个字段的值。
我正在运行 MS SQL。
您可以使用触发器来更新其他字段。
编辑:我想这可能取决于您正在运行的 SQLesque 数据库。
我无法测试,但我想它是这样的触发器
CREATE TRIGGER TriggerName ON TableName FOR UPDATE AS
如果更新(ColumnUpdatedByERP)
开始
更新 ...
结尾
- 编辑 - 更好的版本,感谢 Tomalak 的评论
CREATE TRIGGER TriggerName ON TableName FOR UPDATE AS
声明 @oldValue VARCHAR(100)
声明@newValue VARCHAR(100)
如果更新(ColumnUpdatedByERP)
开始
SELECT @oldValue = (SELECT ColumnUpdatedByERP FROM Deleted)
SELECT @newValue = (SELECT ColumnUpdatedByERP FROM Inserted)
如果 @oldValue <> @newValue
开始
更新 ...
结尾
结尾
您想使用触发器,但我会非常警惕所选答案中的错误。请参阅 Brent Ozar关于多条记录的文章http://www.brentozar.com/archive/2009/01/triggers-need-to-handle-multiple-records/ 。