I'd like to call Update ... Set ... Where ... to update a field as soon as that evil ERP process is changing the value of another.
I'm running MS SQL.
I'd like to call Update ... Set ... Where ... to update a field as soon as that evil ERP process is changing the value of another.
I'm running MS SQL.
You could use a trigger to update the other field.
Edit: I guess that may depend on what SQLesque database you are running.
I can't test, but i guess its a trigger like this
CREATE TRIGGER TriggerName ON TableName FOR UPDATE AS IF UPDATE(ColumnUpdatedByERP) BEGIN UPDATE ... END
-- Edit - a better version, thanks for comment Tomalak
CREATE TRIGGER TriggerName ON TableName FOR UPDATE AS DECLARE @oldValue VARCHAR(100) DECLARE @newValue VARCHAR(100) IF UPDATE(ColumnUpdatedByERP) BEGIN SELECT @oldValue = (SELECT ColumnUpdatedByERP FROM Deleted) SELECT @newValue = (SELECT ColumnUpdatedByERP FROM Inserted) IF @oldValue <> @newValue BEGIN UPDATE ... END END
You want to use a trigger but I would be very wary of the bug in the selected answer. See Brent Ozar's well written post http://www.brentozar.com/archive/2009/01/triggers-need-to-handle-multiple-records/ on Multiple Records.