【发布时间】:2011-01-19 06:51:07
【问题描述】:
如何获取数据库中特定表的排序规则?数据库中的表是否可能具有不同的排序规则?
【问题讨论】:
标签: sql sql-server collation
如何获取数据库中特定表的排序规则?数据库中的表是否可能具有不同的排序规则?
【问题讨论】:
标签: sql sql-server collation
就像一个注意点。 SSMS 可以在编写表格脚本时显示列排序规则。您可以进入工具-> 选项。在 SQL Server 对象资源管理器 -> 脚本下,有一个选项可以在编写表格脚本时显示排序规则。您可以暂时打开它并编写表格以查看表格创建代码,包括列排序规则。
【讨论】:
Include collation,在Table and view options下。谢谢!
表级别的排序规则是基于每列的,因此可能有与数据库不同的排序规则。如果排序规则未在列级别定义,则默认为数据库排序规则设置。
SQL Server 2000:
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'
【讨论】:
INFORMATION_SCHEMA 而不是架构sys,后一种情况会更简单(没有连接或对象ID)。你会得到:SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name'
没有表的排序规则。
数据库有一个默认排序规则(默认为服务器的排序规则)。
数据库的默认排序规则将应用于您添加到表中的任何列,除非您在列级别明确指定排序规则。
【讨论】: