sql-server – 写varchar和nvarchar之间的差异

前端之家收集整理的这篇文章主要介绍了sql-server – 写varchar和nvarchar之间的差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前在我们的sql Server 2012数据库中,我们正在使用varchar,我们想要更改该nvarchar.我已经生成了一个脚本来做到这一点.

我的问题是sql Server如何写入varchar列与nvarchar列有什么不同?我们有一些我关心的后端程序.

编辑:
不确定这是否有帮助,但列没有索引,f / k或约束.

解决方法

您需要确保使用N前缀为Unicode字符串文字添加前缀.例如,如果基础数据类型是NVARCHAR,这些将以不同的方式工作:
CREATE TABLE dbo.t(c NVARCHAR(32));

INSERT dbo.t(c) SELECT 'រៀន';
INSERT dbo.t(c) SELECT 'នរៀ';
INSERT dbo.t(c) SELECT N'រៀន';

SELECT c FROM dbo.t;

SELECT c FROM dbo.t WHERE c = 'រៀន';
SELECT c FROM dbo.t WHERE c = N'រៀន';

结果:

c
----
??? -- not stored correctly
??? -- not stored correctly
រៀន -- stored correctly!

c
----
???
??? -- probably not expected,however all Unicode characters have been changed to ?

c
----
រៀន

对于那些在移动设备或破旧浏览器上显示框字符而不是实际Unicode字符的人,这就是它的样子:

原文链接:https://www.f2er.com/mssql/79498.html

猜你在找的MsSQL相关文章