删除 SQL Server 中列的排序规则

问题描述 投票:0回答:2

设置列的排序规则后如何删除它?

SQL Server 中列的标准排序规则是“NULL”。这意味着,使用了数据库的排序规则。

TSQL 语句

ALTER table ALTER column COLLATE database_default
将显式地将列的排序规则设置为数据库的排序规则,但它不会恢复无排序规则(NULL 排序规则)的原始状态。

我们真的可以放弃排序规则吗?

sql-server collation alter-column
2个回答
1
投票

不,您不能删除列甚至数据库的排序规则。

1:如果不指定任何排序规则,列将使用数据库的默认排序规则

2:如果数据库未指定排序规则,则使用 服务器排序规则


0
投票

可以

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%'
© www.soinside.com 2019 - 2024. All rights reserved.