鉴于这个简单的示例触发器:
CREATE TRIGGER example_update
ON example_table
FOR UPDATE
AS BEGIN
if update(someColumn) begin
update example_table SET last_update_date = GETDATE() WHERE id IN (SELECT id FROM inserted);
end
END
如果 someColumn 的旧值和 someColumn 的新值相等,update(someColumn) 返回 true 还是 false?例如,如果我运行这两个 SQL 语句:
UPDATE example_table SET someColumn=1;
UPDATE example_table SET someColumn=1;
第二个语句会触发我的触发器中的 if 块吗?
另外,如果我执行此操作,我的假设是否正确:
UPDATE example_table SET otherColumn=1;
然后我的触发器中的 update(someColumn) 将返回 false。
如果这是重复,我深表歉意:该函数被称为 update 的事实使我的搜索结果充满了更新语句(这与 update 函数非常不同),并且使我很难确定这种行为。