sql-server – 写varchar和nvarchar之间的差异
发布时间:2020-12-12 06:19:09 所属栏目:MsSql教程 来源:网络整理
导读:目前在我们的SQL Server 2012数据库中,我们正在使用varchar,我们想要更改该nvarchar.我已经生成了一个脚本来做到这一点. 我的问题是SQL Server如何写入varchar列与nvarchar列有什么不同?我们有一些我关心的后端程序. 编辑: 不确定这是否有帮助,但列没有索引
目前在我们的SQL Server 2012数据库中,我们正在使用varchar,我们想要更改该nvarchar.我已经生成了一个脚本来做到这一点.
我的问题是SQL Server如何写入varchar列与nvarchar列有什么不同?我们有一些我关心的后端程序. 编辑: 解决方法您需要确保使用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字符的人,这就是它的样子: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |