【发布时间】:2011-10-10 20:08:22
【问题描述】:
我正在编写触发器来检测数据库中字段的变化,看来我必须做一些非常讨厌的事情,比如
(SELECT SalesPrice FROM __old) <> (SELECT SalesPrice FROM __new)
or ((SELECT SalesPrice FROM __old) IS NULL and (SELECT SalesPrice FROM __new) IS NOT NULL)
or ((SELECT SalesPrice FROM __old) IS NOT NULL and (SELECT SalesPrice FROM __new) IS NULL)
而不仅仅是
(SELECT SalesPrice FROM __old) <> (SELECT SalesPrice FROM __new)
准确检测字段是否更改。
我是否遗漏了什么,或者 Advantage 是否有效地声称 NULL == 任何值?这种行为有充分的理由吗?这是 SQL 定义中的一些奇怪的事情吗?有没有一种更简洁的方法可以不进行 3 次检查来代替 1 次检查?
【问题讨论】: