难道是SQL2008的Bug么?大虾进来看看
我遇到了和这哥们发的帖子一样的问题:http://bbs.csdn.net/topics/390028807#new_post
问题纠结在于sys.dm_os_wait_stats里的wait_type是否有重复值!
大家不妨在你的DB里运行下面代码验证下~
[解决办法]
SELECT COUNT(wait_type)
FROM sys.dm_os_wait_stats ;
SELECT COUNT(DISTINCT wait_type)
FROM sys.dm_os_wait_stats ;
SELECT wait_type
INTO #t
FROM sys.dm_os_wait_stats
GROUP BY wait_type
ALTER TABLE [#t] ALTER COLUMN [wait_type] NVARCHAR(50) COLLATE Chinese_PRC_90_CI_AI
SELECT COUNT(wait_type)
FROM #t ;
SELECT COUNT(DISTINCT wait_type)
FROM #t ;
SELECT DISTINCT wait_type
FROM sys.dm_os_wait_stats
WHERE [wait_type] = 'MISCELLANEOUS'
SELECT DISTINCT wait_type COLLATE Chinese_PRC_90_CI_AI
FROM sys.dm_os_wait_stats
WHERE [wait_type] = 'MISCELLANEOUS' COLLATE Chinese_PRC_90_CI_AI
ORDER BY wait_type COLLATE Chinese_PRC_90_CI_AI
[解决办法]
SELECT wait_type
INTO #tb
FROM sys.dm_os_wait_stats
WHERE [wait_type] = 'MISCELLANEOUS'
--2
SELECT name ,[collation] FROM [tempdb].sys.[syscolumns] AS s WHERE id=OBJECT_ID('tempdb..#tb')
SELECT DISTINCT wait_type FROM #tb
ORDER BY wait_type COLLATE Chinese_PRC_CI_AS
--1
[解决办法]
sql server 2005好像没有办法设置这个参数。
[解决办法]
AI 指定不区分重音,AS 指定区分重音。
如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项, 比较还将重音不同的字母视为不等。
区分重音字符和非重音字符。例如,“a”和“?”将被视为不同的字符。
如果未选择此项,在排序时,SQL Server 将把字母的重音形式和非重音形式视为相同。
我查了一下,sql server 2008在这方面也有其他的bug,所以说不好,你发现的问题真是一个bug:
修复: 前缀搜索使用的扩展的字符或重音在 SQL Server 2008年中返回错误的结果
http://support.microsoft.com/kb/973090/zh-cn