【问题标题】:Is N'some string here' ANSI SQL?N'some string here' ANSI SQL 吗?
【发布时间】:2015-07-07 13:45:46
【问题描述】:

我们知道,为了将字符串文字限定为 Unicode,我们需要在 Transact-SQL 中为其添加前缀 N。我的问题是这是否属于任何标准,例如 ANSI SQL。其他数据库平台会理解这一点吗?

更新:

我对@9​​87654321@ 的实际实验表明,为了使用 Unicode 文字:

【问题讨论】:

    标签: sql-server tsql ansi-sql ansi-sql-92


    【解决方案1】:

    根据the MSDN documentation for constants in T-SQLN' 前缀是“SQL-92”标准的一部分:

    Unicode 字符串的格式类似于字符串,但 前面有一个 N 标识符(N 代表国家语言在 SQL-92 标准)。

    根据Wikipedia,在该版本的标准中添加了“国家字符”字符串。那篇文章引用了看似实际的标准文档http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt,其中说:

    的 NATIONAL CHARACTER 用于指定一个字符 具有特定实现定义字符的字符串数据类型 曲目。提供了特殊语法(N'string')来表示 该字符库中的文字。

    所以,是的,它似乎绝对是标准的一部分。

    更新:

    正如 Damien_The_Unbeliever 在这里的 cmets 中指出的那样,上面链接的标准文档实际上是一个草稿(据说实际的标准文档不公开),但在我看来,似乎有有足够的证据表明,至少就国家字符N而言,这是标准。

    【讨论】:

    • 是的;因为它是 SQL-92 标准,这意味着它也是 ANSI-92 标准。我试图找到那个文档,但找不到
    • 应该注意,您链接到的文档在技术上是标准的草稿,而不是已发布的标准本身。我自己使用该文档,但已发布的标准不能在网络上免费获得。 (因此,由于它不是官方的,所以我总是有两种想法是链接到它还是引用它)
    • @Damien_The_Unbeliever -- 好吧,那么我认为按照您的建议做笔记就足够了。我会将其添加到我的答案中。
    【解决方案2】:

    在部分下

    4.2 字符串

    关于 SQL92 规范 (http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt)

    s NATIONAL CHARACTER 用于指定一个字符 具有特定实现定义字符的字符串数据类型 曲目。提供了特殊语法(N'string')来表示 该字符库中的文字。

    所以是的,根据最广泛使用的规范,它是标准 ANSI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 2013-08-09
      • 2021-09-27
      相关资源
      最近更新 更多