月亮代表我的心

个人博客,跟月亮无关,跟代表无关,无关谁的心

COLUMNS_updated 用法小结

以下为个人见解

仅用于insert,update触发器中.

指定的所有列是否都进行了更新,使用等号(=).

指定的任一列或某些列是否进行了更新,使用大于号(>).

例子:

有一表T,其包含五列:C1,C2,C3,C4,C5(注意:由左到右数过来)

如要检查C2,C3,C4是否全部进行了更新,则:IF (COLUMNS_updateD(T)&14=14)
如要检查C2,C3,C4是否某一列进行了更新,则:IF (COLUMNS_updateD(T)&14>14)

以上例子14的由来
首先,标记需要检查是否更新的列值为1,否则为0,如下式所示:
C1—C2—C3—C4—C5
0—–1—–1—–1—-0

由上可得:C4 C3 C2 C1:1110(注意:有右到左列出来),此值为二进制,转换为十进制,则得出14

同一例子,如要检查C2是否进行了更新,则C2 C1:10,二进制10的十进制为2,所以结果为:
IF (COLUMNS_updateD(T)&2=2)
或者:IF update(C2)

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注