如何确定SQL 2005中数据库的排序规则?

时间:2020-03-06 14:31:49  来源:igfitidea点击:

例如,如果需要执行不区分大小写的搜索/替换,如何确定SQL 2005中数据库的排序规则?

解决方案

使用以下SQL确定数据库的排序规则:

SELECT DATABASEPROPERTYEX('{database name}', 'Collation') SQLCollation;

请记住,各个列可以覆盖数据库排序规则:

SELECT TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS

如果要进行不区分大小写的搜索并且不能依赖数据库的排序规则,则始终可以针对我们感兴趣的查询专门请求它。例如:

SELECT TOP 1 FName, *
FROM People
WHERE FName LIKE '%mich%' COLLATE Latin1_General_CI_AI

我通常遇到相反的问题,我想要区分大小写,但在数据库的排序规则中没有区分大小写,因此我发现自己在查询中经常使用Latin1_General_BIN排序规则。如果我们还不知道,可以执行以下操作:

SELECT 
FROM ::fn_helpcollations()

以获得可用的排序规则列表以及它们的用途说明。