Удалить параметры сортировки столбца в SQL Server
Как удалить параметры сортировки столбца после его установки?
Стандартное сопоставление столбца в SQL Server - "NULL". Это означает, что используется сортировка базы данных.
TSQL-заявление ALTER table ALTER column COLLATE database_default
явным образом установит сопоставление столбца с одним из базы данных, но не восстановит исходное состояние отсутствия сопоставления (сортировка NULL).
Можем ли мы отказаться от сопоставления?
2 ответа
Нет, вы не можете удалить сопоставление столбца или даже базы данных.
1: Если вы не укажете параметры сортировки, столбцы будут использовать параметры сортировки базы данных по умолчанию.
2: если в базе данных не указано сопоставление, используется сопоставление сервера.
Вы можете восстановитьCOLLATION
изCOLUMN
вернуться к базе данных по умолчанию; ты просто используешьdatabase_default
в качестве имени сопоставления, которое вы хотите:
ALTER TABLE someTableName ALTER COLUMN someColumnName [nvarchar](255) COLLATE database_default`
Я использую этот простой сценарий для генерации всех операторов SQL. Я видел другие сценарии, которые создают операторы и выполняют их, но они предназначались для конкретных именованных сопоставлений.
SELECT TABLE_NAME,
COLUMN_NAME,
COLLATION_NAME,
CONCAT('ALTER TABLE ',TABLE_NAME ,' ALTER COLUMN ', COLUMN_NAME ,' [',DATA_TYPE,'](',CHARACTER_MAXIMUM_LENGTH,')
COLLATE database_default') AS theScripts
FROM information_schema.columns
WHERE COLLATION_NAME IS NOT NULL
AND collation_name <> 'SQL_Latin1_General_CP1_CI_AS'
AND data_type LIKE '%char%'