N'在这里是一些字符串' ANSI SQL?

时间:2015-07-07 13:45:47

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

我们知道为了将字符串文字限定为Unicode,我们需要在T​​ransact-SQL中用N作为前缀。我的问题是,这是否是ANSI SQL的任何标准的一部分。其他数据库平台是否会理解这一点?

更新

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

2 个答案:

答案 0 :(得分:7)

根据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,其中包含:

  

<关键字>国家字符用于指定字符   具有特定实现定义字符的字符串数据类型   剧目。提供特殊语法(N'字符串')用于表示   该角色曲目中的文字。

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

<强>更新

正如Damien_The_Unbeliever在这里的评论中所指出的,上面链接的标准文件实际上是一个草案(据说实际标准文件不公开),但在我看来,似乎足以证明,至少就国家性质N而言,这是标准。

答案 1 :(得分:1)

部分下
  

4.2字符串

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

  

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

是的,根据最广泛使用的规范

,它是标准ANSI