【问题标题】:How can I print this in sql server?如何在 sql server 中打印?
【发布时间】:2019-02-19 11:39:58
【问题描述】:

输出窗口用'?'填充标记。

select ('все магазины Сильпо') as test

我希望输出窗口中的文本完全相同。我正在使用 SQL Server 2016。

【问题讨论】:

    标签: sql-server tsql sql-server-2016


    【解决方案1】:

    添加N前缀标识unicode字符:

    SELECT N'все магазины Сильпо' AS test
    

    N 实际上代表国家语言字符集。

    引用Microsoft

    以字母 N 为前缀的 Unicode 字符串常量。如果没有 N 前缀,则字符串将转换为数据库的默认代码页。此默认代码页可能无法识别某些字符。

    【讨论】:

    • 不起作用。它给出错误:Msg 156, Level 15, State 1, Line 1 关键字'as'附近的语法不正确。
    • 在哪里你执行这个得到那个错误?上面的说法完全正确?
    • @AlexK。 - 如果你执行 SELECT n'все магазины Сильпо' AS test,你会看到这个 - 看起来出于某种原因 OP 使用小写 n 然后抱怨答案不起作用
    • @DaxeshRadadiya。 . .确保您测试了相同的代码,我怀疑您定义了前缀 n 而不是 N
    • 感谢大家的宝贵时间。
    【解决方案2】:

    您需要将字符串文字定义为nvarchar,而不是varchar

    PRINT N'все магазины Сильпо';
    

    【讨论】:

    • 不起作用。它给出错误:消息 128,级别 15,状态 1,行 1 在此上下文中不允许使用名称“n”。有效表达式是常量、常量表达式和(在某些情况下)变量。不允许使用列名。
    • @DaxeshRadadiya - 它必须是大写的N
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 2016-11-18
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多