我如何获取数据库中特定表的排序规则(collation)?一个表是否可能在数据库中具有不同的排序规则(collation)?
我如何获取数据库中特定表的排序规则(collation)?一个表是否可能在数据库中具有不同的排序规则(collation)?
SELECT c.name,
c.collation
FROM SYSCOLUMNS c
WHERE [id] = OBJECT_ID('your_table_name')
SQL Server 2005+:
SELECT c.name,
c.collation_name
FROM SYS.COLUMNS c
JOIN SYS.TABLES t ON t.object_id = c.object_id
WHERE t.name = 'your_table_name'
对于表而言,不存在所谓的排序。
数据库有一个默认排序(默认情况下是服务器的排序方式)。
无论您添加到表中的列是什么,都将应用数据库的默认排序,除非您在列级别显式地指定了一种排序方式。
仅作为一点注意事项。SSMS可以在脚本化表时显示列排序规则。您可以进入“工具”->“选项”。在SQL Server对象资源管理器->脚本化下,有一个选项可以在脚本化表时显示排序规则。您可以暂时打开此选项并脚本化一个表以查看包括列排序规则的表创建代码。
包括排序
并且位于表和视图选项
下。谢谢! - katalin_2003
INFORMATION_SCHEMA
而不是模式sys
,后一种情况甚至可以更简单(无需连接或对象ID)。您将获得以下查询语句:SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name'
。 - Jeppe Stig Nielsen