确定nvarchar列VARCHAR内容
-
18-09-2019 - |
题
我有一堆我怀疑含有VARCHAR列完全可存储的数据NVARCHAR列。但是我不能随便去改变字段的类型为VARCHAR,并希望最好的,我需要做一些检查。
我想要做的转换,因为数据是静态的(它不会在未来的变化)和列索引,并会从比较实际的(NVARCHAR)指数较小(VARCHAR)索引中获益。
如果我简单说
ALTER TABLE TableName ALTER COLUMN columnName VARCHAR(200)
然后我就不会得到一个错误或警告。 Unicode数据将被截断/丢失。
如何检查?
解决方案
为什么不投那里,回过头来看看哪些数据丢失?
此假定列数据类型为nvarchar(200)开始与
SELECT *
FROM TableName
WHERE columnName <> CAST(CAST(columnName AS varchar(200)) AS nvarchar(200))
其他提示
嗯有趣。
我不知道,你可以在一个SQL查询本身做到这一点。你高兴做的代码?如果是这样,你可以得到所有的记录,然后遍历字符串,并检查所有的字符。但人这是一个缓慢的方式。
不隶属于 StackOverflow