SQL 中的N'xx'的作用
有时候,我们会在SQL的语句中看到类似如下的语句:
SELECT O.id, U.name OWNER, O.name, O.type FROM xxx.dbo.sysobjects O LEFT JOIN xxx.dbo.sysusers U ON O.uid = U.uid WHERE (O.type = N'U' OR O.type = N'S' OR O.type = N'V') ORDER BY O.name
SELECT O.id, U.name OWNER, O.name, O.type FROM xxx.dbo.sysobjects O LEFT JOIN xxx.dbo.sysusers U ON O.uid = U.uid WHERE (O.type = 'U' OR O.type = 'S' OR O.type = 'V') ORDER BY O.name
上面2条语句的运行结果可能是完全相同的,注意到第一条语句中的字符前面的N,这里的N代表什么意思呢?
N的作用是确保后面的字符被看成是UNICODE编码的
"The N stands for National - the N converts the VARCHAR to a NVARCHAR, which is used to store unicode data, which is used to store multilingual data in your database tables."偶简单翻译如下:
N代表着National,它能将VARCHAR类型的字符转换成NVARCHAR类型的字符,被用于存储unicode数据,在数据库表中被用于存储多语言数据。