先记录我的理解,不正确的请批评。
1.sqlserver中的编码格式和字符集的区别?
编码格式指的是数据的存储方式,
例如:colname nvarchar(16);colname varchar(16)
其中的nvarchar和varchar指的就是编码格式。带n开头的就是unicode编码格式。
而字符集主要是排序规则或者显示时候的一种规则。和实际数据的存储应该没有必然的联系的。(个人认为,不知正确与否)
关于字符集的设置和理解可参考:
https://blog.csdn.net/johnf_nash/article/details/79969533
2.加N‘表示的含义?
有大N的’,解释其内容为双字节(Unicode) 字符(双字节,例如:nvarchar)。
无大N的’,解释内容为单字节字符串(,例如:varchar)。
CREATE TABLE AATEST2
(MYNAME NVARCHAR(16))
当你的表栏位创建的是NVARCHAR时,如果存贮的数据是unicode才能识别的文字时,查询时需要加N’ ,表示是unicode编码。
SELECT * FROM AATEST2 WHERE MYNAME=N’丠’
如果不加N’,则表示的非unicode编码,会查询不到数据。