Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是';N';处理SQL时,例如(N';';)_Sql_Tsql - Fatal编程技术网

什么是';N';处理SQL时,例如(N';';)

什么是';N';处理SQL时,例如(N';';),sql,tsql,Sql,Tsql,就像在问题中一样,不确定SQL中'和N'之间的区别。N''表示unicode字符串。它是Nvarchar的缩写。使用该表示法告诉解析器将以下字符串数据视为nvarchar,而不是默认的varchar 例如: SELECT N'This is a test'; -- NVarChar data SELECT 'Test is a test'; -- VarChar data N存储UNICODE数据,就像NVARCHAR和VARCHAR nvarchar列可以存储任何Unicode数据。varc

就像在问题中一样,不确定SQL中
'
N'
之间的区别。

N''表示unicode字符串。

它是
Nvarchar
的缩写。使用该表示法告诉解析器将以下字符串数据视为
nvarchar
,而不是默认的
varchar

例如:

SELECT N'This is a test'; -- NVarChar data
SELECT 'Test is a test'; -- VarChar data

N
存储
UNICODE
数据,就像
NVARCHAR
VARCHAR


nvarchar
列可以存储任何Unicode数据。
varchar
列被限制为8位代码页。有些人认为应该使用
varchar
,因为它占用更少的空间。我相信这不是正确的答案。代码页不稳定性是一种痛苦,Unicode是解决代码页问题的良方。现在磁盘和内存都很便宜,真的没有理由再浪费时间在代码页上了。

我相信它可能是“国家”的翻版。@MartinSmith你说得对-国家语言字符。太奇怪了。+1有点离题,但我同意你默认使用
nvarchar
。在某些情况下,我知道我只存储产品代码或州缩写之类的内容,我会转而使用
varchar
。但正如塞尔科所说,你给某人一个
NVARCHAR
列,最终它会得到一个中文Unicode的佛经。