我们在管理不同的客户数据库时遇到了困难:
我们需要在不更改排序规则的情况下将主键列从VARCHAR(20)
更改VARCHAR(40)
为。这背后的原因是我们使用了不区分大小写的默认排序规则,而我们想要更改的列是区分大小写的并且需要保持这种方式。
通常这不会有问题,我们可以告诉它保持区分大小写的排序规则:
ALTER TABLE Commiss
ALTER COLUMN CommissName VARCHAR(40)
COLLATE Latin1_General_CS_AS NOT NULL;
但是,我们的一些客户有不同的默认排序规则(法语、中文、...)。到目前为止,我们始终可以为所有客户使用相同的更新脚本。现在我们需要ALTER COLUMN
在更新模式之前将所有语句更改为正确的排序规则。
所以我的问题是:有没有办法告诉 SQL Server 更改数据类型并保留此列的现有排序规则。或者,我们也可以这样做:
ALTER TABLE Commiss
ALTER COLUMN CommissName VARCHAR(40)
COLLATE CS_AS NOT NULL;
如此有效地保持语言原样,并且只会“改变”区分大小写。
谢谢!