我如何获取数据库中特定表的排序规则?

mas*_*ani 7 sql sql-server collation

我如何获取数据库中特定表的排序规则?是否有可能表中的db具有不同的排序规则?

OMG*_*ies 14

表级别的排序是基于每列的,因此可以使排序规则与数据库不同.如果未在列级别定义排序规则,则默认为数据库排序规则设置.

SQL Server 2000:

SELECT c.name, 
       c.collation 
  FROM SYSCOLUMNS c
 WHERE [id] = OBJECT_ID('your_table_name')
Run Code Online (Sandbox Code Playgroud)

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'
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用模式“INFORMATION_SCHEMA”而不是模式“sys”,后一种情况可能会更简单(没有连接或对象 ID)。您将得到:`SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name'` (3认同)