1

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

更新:

我对Mig#的实际实验表明,为了使用 Unicode 文字:

4

2 回答 2

7

根据T-SQL 中常量的 MSDN 文档N'前缀是“SQL-92”标准的一部分:

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

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

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

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

更新:

正如 Damien_The_Unbeliever 在此处的评论中指出的那样,上述链接的标准文件实际上是一个草案(并且据说实际的标准文件不公开),但在我看来,似乎有足够的证据表明,至少因为就国民性格N而言,就是标准。

于 2015-07-07T13:54:04.403 回答
1

根据部分

4.2 字符串

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

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

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

于 2015-07-07T13:59:14.267 回答