我有一个有两列的表,我需要一个(columnB)作为另一个列的副本(columnA).因此,如果插入或更新了一行,我希望将columnA中的值复制到columnB.
这就是我现在拥有的:
CREATE TRIGGER tUpdateColB ON products FOR INSERT,UPDATE AS BEGIN UPDATE table SET columnB = columnA END
解决方法
假设您有一个主键列id,(并且您应该有一个主键),请加入到inserted表中(使触发器能够处理多行):
CREATE TRIGGER tUpdateColB ON products FOR INSERT,UPDATE AS BEGIN UPDATE table SET t.columnB = i.columnA FROM table t INNER JOIN inserted i ON t.id = i.id END
但如果ColumnB始终是ColumnA的副本,为什么不创建Computed column?