0

我想调用 Update ... Set ... Where ... 来更新一个字段,只要那个邪恶的 ERP 流程正在改变另一个字段的值。

我正在运行 MS SQL。

4

3 回答 3

3

您可以使用触发器来更新其他字段。

编辑:我想这可能取决于您正在运行的 SQLesque 数据库。

于 2009-01-24T15:06:22.580 回答
3

我无法测试,但我想它是这样的触发器

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
    开始
      更新 ...
    结尾
  结尾
于 2009-01-24T15:30:56.383 回答
1

您想使用触发器,但我会非常警惕所选答案中的错误。请参阅 Brent Ozar关于多条记录的文章http://www.brentozar.com/archive/2009/01/triggers-need-to-handle-multiple-records/ 。

于 2009-01-25T02:36:22.327 回答