Ich versuche, alle Datenbanken in einer einzigen Kollatierung zu standardisieren - Latin1_General_CI_AS (die Standardkollatierung). Ich habe einige Datenbanken, die in SQL_Latin1_General_CP1_CI_AS sind.
Ich weiß, dass ich ALTER DATABASE verwenden kann, um die Datenbanksortierung zu ändern, aber das betrifft nur neue Objekte. Ich verstehe, dass die einzige Möglichkeit, vorhandene Spalten zu ändern, darin besteht, ALTER COLUMN für jede Spalte in jeder Tabelle auszuführen. Dazu müsste ich alle Indizes löschen und neu erstellen.
Ich denke, es würde ungefähr so aussehen:
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)
und für jede varchar-, char-, text-, nvarchar-, nchar- und ntext-Spalte in der gesamten Datenbank wiederholen. Das wäre ein riesiges SQL-Skript.
Gibt es eine einfachere Möglichkeit, dies zu tun, oder kann jemand eine Möglichkeit vorschlagen, die Erstellung eines SQL-Skripts zu automatisieren, um dies zu tun?
quelle