我们决定使用Nvarchar
来将某些信息存储在某些表中,原因是我们假定由于数据库包含法语和德语数据,因此我们会有很多特殊字符。检查字段是否包含SQL中的特殊字符
提取一些数据,我们估计全力奔跑有和extreamlly巨大的大小(20 TB)
现在我们想检查每一个表中查找,如果有发现,如果没有则特殊字符我们将类型从NvarChar
更改为Varchar
任何想法我们如何查询?
或者您认为优化尺寸的最佳方法是什么?
我们决定使用Nvarchar
来将某些信息存储在某些表中,原因是我们假定由于数据库包含法语和德语数据,因此我们会有很多特殊字符。检查字段是否包含SQL中的特殊字符
提取一些数据,我们估计全力奔跑有和extreamlly巨大的大小(20 TB)
现在我们想检查每一个表中查找,如果有发现,如果没有则特殊字符我们将类型从NvarChar
更改为Varchar
任何想法我们如何查询?
或者您认为优化尺寸的最佳方法是什么?
必须解决这个前阵子自己:
使用正则表达式:
LIKE '%[^a-zA-Z0-9]%'
为了解决搜索表的问题,请尝试:How do I find a value anywhere in a SQL Server Database?,如果不是我有一个更好的地方,我用。
其实一个更好的主意是使用压缩表。 SQL Server 2008有page compression,SQL Server 2008 R2增加了Unicode compression。
http://stackoverflow.com/questions/2558755/how-to-detect-if-a-string-contains-special-characters – Pamma 2013-03-15 22:17:41
我认为你应该编写一个程序来查询每个表的每一列的那些特殊字符。一个快速的谷歌出现了一个很好的,你可以修改一些你需要的东西。 http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm它创建一个临时表,该表将存储找到匹配的表和列名称。 – Scotch 2013-03-15 22:18:37