管道/竖线字符在SQL中的含义是什么?

时间:2011-02-14 14:49:23

标签: sql-server tsql sql-server-2000

Google-fu在这个问题上让我失望。任何人都可以简单解释下面的陈述会做什么吗?:

UPDATE
    message WITH (ROWLOCK)
SET
    message = message | 2

我在触发器中发现了这个,我无法找到解释什么的文档字符在这样的声明中做。

3 个答案:

答案 0 :(得分:7)

答案 1 :(得分:3)

这是按位OR运算符。见this article。实际上,message是一个位域,通过对它进行按位或运算,您将设置第二位。请参阅Wikipedia's bitwise operation文章,了解有关钻头的详细信息:)

答案 2 :(得分:2)

|在T-SQL中是一个按位OR:

http://msdn.microsoft.com/en-us/library/ms186714.aspx

因此,如果消息包含0,则它将包含2,如果它包含1,则它将包含3,等等。