【发布时间】:2011-03-24 18:30:11
【问题描述】:
好的。我正在对表中的单行进行更新。 除主键外,所有字段都将被新数据覆盖。 但是,并非所有值都会更改更新的 b/c。 比如我的表如下:
TABLE (id int ident, foo varchar(50), bar varchar(50))
初始值为:
id foo bar
-----------------
1 hi there
然后我执行UPDATE tbl SET foo = 'hi', bar = 'something else' WHERE id = 1
我想知道的是哪一列的值发生了变化,它的原始值是什么,它的新值是什么。
在上面的示例中,我希望看到“bar”列从“there”更改为“something else”。
可以不进行逐列比较吗?是否有一些优雅的 SQL 语句,例如 EXCEPT,它会比行更细粒度?
谢谢。
【问题讨论】:
标签: sql-server sql-server-2005 tsql