Sql-Server
如何更改 SQL Server 數據庫的排序規則?
我正在嘗試在單個排序規則上標準化所有數據庫 - Latin1_General_CI_AS (標準排序規則)。我有一些數據庫位於 SQL_Latin1_General_CP1_CI_AS 中。
我知道我可以使用 ALTER DATABASE 來更改數據庫排序規則,但這只會影響新對象。我的理解是,更改現有列的唯一方法是對每個表中的每一列執行 ALTER COLUMN - 我需要刪除並重新創建所有索引才能做到這一點。
我想它看起來像這樣:
DROP INDEX indexname ON tablename GO ALTER TABLE tablename ALTER COLUMN columname varchar(50) COLLATE Latin1_General_CI_AS NULL GO CREATE CLUSTERED INDEX indexname ON tablename (columname ASC)
並對整個數據庫中的每個 varchar、char、text、nvarchar、nchar 和 ntext 列重複。那將是一個巨大的SQL 腳本。
有沒有更簡單的方法可以做到這一點,或者任何人都可以建議一種方法來自動創建 SQL 腳本來做到這一點?
MS KB 325335提供了有關如何對整個數據庫和所有列執行此操作的選項。
基本上:
- 腳本數據庫表(使用新排序規則)
- DTS/SSIS 數據(觀看整理)
- 添加約束
它可能需要一些調整,但我使用“SQL Server 2000 Collation Changer”實用程序取得了成功:http: //www.codeproject.com/KB/database/ChangeCollat ion.aspx