2010-02-21 4 views

ответ

9

Сопоставление на уровне таблицы соответствует столбцу, поэтому возможно сопоставление, отличное от базы данных. Если сортировка не определена на уровне столбца, она по умолчанию устанавливает настройку сортировки базы данных.

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' 
+0

Последний случай может быть еще проще (без идентификатора соединения или объекта), если вы используете схему 'INFORMATION_SCHEMA' вместо схемы' sys'. Вы получите: 'SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name'' –

+0

Извините, комментарий выше применим только к SQL Server 2012 и более поздним версиям, которые, очевидно, не были доступны, когда был написан ответ, но я думаю, что большинство людей будут использовать его к настоящему времени, поэтому комментарий может быть полезен. –

1

Нет такой вещи, как сортировка таблицы.

База данных имеет сортировку по умолчанию (которая по умолчанию соответствует настройке для сервера).

Значение сортировки по умолчанию для базы данных будет применяться к любому столбцу, который вы добавляете в таблицу, ЕСЛИ вы явно указываете сортировку на уровне столбца.

+1

Как я могу получить этот уровень столбец сортировки? –

Смежные вопросы