我有一个包含 42 列的表和一个触发器,当这些列中的 38 列更新时,它应该做一些事情。因此,如果其余 4 列发生更改,我需要跳过逻辑。
我可以使用UPDATE()函数并创建一个大IF
条件,但更喜欢做一些更短的事情。使用COLUMNS_UPDATED我可以检查是否所有某些列都更新了?
例如,检查第 3、5 和 9 列是否更新:
IF
(
(SUBSTRING(COLUMNS_UPDATED(),1,1) & 20 = 20)
AND
(SUBSTRING(COLUMNS_UPDATED(),2,1) & 1 = 1)
)
PRINT 'Columns 3, 5 and 9 updated';
Run Code Online (Sandbox Code Playgroud)
因此,20
列3
和的5
值,以及1
列的值,9
因为它设置在第二个字节的第一位。如果我将语句更改为OR
它会检查列3
和/5
或列9
是否更新?
如何OR
在一个字节的上下文中应用逻辑?