【问题标题】:What does the pipe/veritcal bar character mean in TSQL? [duplicate]T SQL 中的竖线/竖线字符是什么意思? [复制]
【发布时间】:2011-06-26 23:37:01
【问题描述】:

Google-fu 在这方面让我失望了。谁能简要解释一下下面的语句会做什么?:

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

我在触发器中发现了这个,但我找不到解释 |字符在这样的语句中。

【问题讨论】:

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


    【解决方案1】:

    【讨论】:

    • 谢谢。我曾假设消息是一个文本字段,这就是为什么它让我感到困惑。如果我真的检查了底层类型,那会更有意义。谢谢!
    【解决方案2】:

    这是按位或运算符。见this article。实际上,message 是一个位域,通过将其与 2 进行按位或运算,您将设置第二位。请参阅Wikipedia's bitwise operation 文章,了解有关位旋转的良好概述 :)

    【讨论】:

      【解决方案3】:

      |在 T-SQL 中是按位或:

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

      所以如果消息包含 0,它将包含 2,如果它包含 1,它将包含 3,等等。

      【讨论】:

        猜你喜欢
        • 2015-09-29
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 2017-07-05
        • 2014-01-30
        • 1970-01-01
        • 2012-07-21
        • 2022-01-08
        相关资源
        最近更新 更多