删除 SQL Server 中列的排序规则



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

SQL Server 中列的标准排序规则为"NULL"。这意味着,使用数据库的排序规则。

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

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

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

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

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

可以将COLUMNCOLLATION恢复为数据库默认值;只需使用 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%'

相关内容

  • 没有找到相关文章

最新更新