SQL Server 2008搜索双字节字符

时间:2011-02-28 18:18:16

标签: sql-server sql-server-2008

有没有办法告诉SQL Server 2008中哪些记录是双字节字符?

例如,如果国家/地区提交为空白,我想在表格中查询中文,韩文和日文的所有记录,我该怎么办?

非常感谢您的意见。

我想我可能会让你们感到困惑。一切都存储在nvarchar中。有些记录是中文,有些是韩文,有些是西班牙文,有些是。我们想找出中国,日本和韩国的记录来做些什么。这有意义吗?

2 个答案:

答案 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