【发布时间】:2011-06-26 23:37:01
【问题描述】:
Google-fu 在这方面让我失望了。谁能简要解释一下下面的语句会做什么?:
UPDATE
message WITH (ROWLOCK)
SET
message = message | 2
我在触发器中发现了这个,但我找不到解释 |字符在这样的语句中。
【问题讨论】:
标签: sql-server tsql sql-server-2000
Google-fu 在这方面让我失望了。谁能简要解释一下下面的语句会做什么?:
UPDATE
message WITH (ROWLOCK)
SET
message = message | 2
我在触发器中发现了这个,但我找不到解释 |字符在这样的语句中。
【问题讨论】:
标签: sql-server tsql sql-server-2000
【讨论】:
这是按位或运算符。见this article。实际上,message 是一个位域,通过将其与 2 进行按位或运算,您将设置第二位。请参阅Wikipedia's bitwise operation 文章,了解有关位旋转的良好概述 :)
【讨论】:
|在 T-SQL 中是按位或:
http://msdn.microsoft.com/en-us/library/ms186714.aspx
所以如果消息包含 0,它将包含 2,如果它包含 1,它将包含 3,等等。
【讨论】: