T-SQL - установить столбцы Nvarchar для сортировки БД - PullRequest
1 голос
/ 15 сентября 2011

Можно ли создать сценарий, который устанавливает параметры сортировки всех столбцов nvarchar в базе данных в параметры сортировки базы данных? Я случайно переопределил сопоставление всех столбцов с неправильным сопоставлением (инструмент разрушил все для меня), и мне нужно создать сценарий, который исправляет это.

Я знаю, что я могу получить параметры сортировки БД, запустив 'SELECT DATABASEPROPERTYEX (' [DBName] ',' Collation ');', и что я могу выполнять команды изменения столбца, но должен быть более простой способ? *

Я благодарен за любую помощь!

1 Ответ

1 голос
/ 15 сентября 2011

Сгенерируйте необходимый вам SQL с помощью information_schema.columns:

declare @collation varchar(50)

set @collation = 'YOUR_EXPECTED_COLLATION_NAME'

select 
    'ALTER TABLE [' + table_schema + '].[' + table_name + '] ALTER COLUMN [' + column_name + '] ' + data_type + '(' + convert(varchar, character_maximum_length) + ') COLLATE ' + @collation
from 
    information_schema.columns 
where 
    data_type in ('varchar', 'char', 'nvarchar', 'nchar')
    and collation_name <> @collation
...