![SQL 排序规则是针对每个实例还是针对每个数据库?](https://linux22.com/image/802925/SQL%20%E6%8E%92%E5%BA%8F%E8%A7%84%E5%88%99%E6%98%AF%E9%92%88%E5%AF%B9%E6%AF%8F%E4%B8%AA%E5%AE%9E%E4%BE%8B%E8%BF%98%E6%98%AF%E9%92%88%E5%AF%B9%E6%AF%8F%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%9F.png)
我有一个 SQL 实例,假设为 MSSQLSRV - 每个实例的排序规则是否相同,即给定实例中的每个数据库都具有相同的排序规则,还是每个数据库都设置了排序规则?即每个实例有多个排序规则。
答案1
每个数据库。实例级别排序规则定义了整个实例的默认排序规则,但是如果您想覆盖默认排序规则,则可以在数据库级别单独设置它。
编辑:
回复您的评论:
您可以通过查看 SSMS 中的数据库属性(右键单击数据库,获取属性,它位于常规页面上)或执行此 TSQL 语句来检查排序规则:
SELECT DATABASEPROPERTYEX('MyDatabase','Collation') AS DbCollation
(将 MyDatabase 替换为您要检查的数据库的名称)
答案2
如果您希望列出实例中每个数据库的排序规则,请尝试以下操作:
SELECT d.name as DbName, DATABASEPROPERTYEX(d.name,'Collation') AS DbCollation
FROM sys.databases d
WHERE d.database_id > 4