有没有办法告诉SQL Server 2008中哪些记录是双字节字符?
例如,如果国家/地区提交为空白,我想在表格中查询中文,韩文和日文的所有记录,我该怎么办?
非常感谢您的意见。
我想我可能会让你们感到困惑。一切都存储在nvarchar中。有些记录是中文,有些是韩文,有些是西班牙文,有些是。我们想找出中国,日本和韩国的记录来做些什么。这有意义吗?
答案 0 :(得分:5)
有没有办法告诉SQL Server 2008中哪些记录是双字节字符?
你可以使用它 - 如果双字节字符不能简化为单个字节,那么你在记录中有CJK:
select * from tbl
where convert(nvarchar(max),convert(varchar(max),somecolumn)) != somecolumn
答案 1 :(得分:0)
如果我理解你,那么它就像存储过程一样简单:
DECLARE @SearchString nvarchar(MAX)
...
SELECT * FROM MyTable
WHERE Country = '' and SearchField = @SearchString
这假设SearchField为nvarchar
。
如果你有一个nvarchar列,那么那里的所有信息都将是双字节。
如果您要查找nvarchar类型的所有列,则可以使用以下查询:
SELECT OBJECT_NAME(col.OBJECT_ID) as [TableName], col.[name] as [ColName], typ.[name]
FROM sys.all_columns col
INNER JOIN sys.types typ
ON col.user_type_id = typ.user_type_id
WHERE col.user_type_id = 231