Stefan Zumbühl 10 Geschrieben 15. Januar 2010 Melden Teilen Geschrieben 15. Januar 2010 Hallo zusammen Ich habe ein Problem und zwar habe ich eine DB, die eine Falsche Collation hat. Die DB konnte ich mit dem Befehl ALTER DATABASE <DB-NAM> COLLATE SQL_Latin1_General_CP1_CI_AS ändern. Ich brauche diese DB für eine Migration. Bei dieser Migration gibt es ein Tool die prüft ob die Collation richtig ist. Jetzt kommt die ganze Zeit dieser Fehler hoch: System.Data.SqlClient.SqlException: Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation. Server stack trace: Exception rethrown at [0]: at Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack) at OSoft.Services.Application.Migration.MigrationUnits.MigrationDiagnostic.CheckFactTableColumns(String& strTotalLog) at OSoft.Services.Application.Migration.MigrationUnits.MigrationDiagnostic.CheckTablesIntegrity(String& strTotalLog) at OSoft.Services.Application.Migration.MigrationUnits.MigrationDiagnostic.runStep(MigrationContext context, String appsetname, Hashtable parameter)</message> <messageType>1</messageType> Was ich bisher rausgefunden habe, dass in einer Spalte noch eine falsche Collation ist. Jetzt meine Frage wie kann ich rausfinden welche Spalte die falsche Collation hat? Als zusatz info. Das Migrationstool will eine MSSQL2000 DB auf eine MSSQL2005 DB migrieren. Stefan Zumbühl Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 21. Januar 2010 Melden Teilen Geschrieben 21. Januar 2010 Moin, Hallo zusammen Ich habe ein Problem und zwar habe ich eine DB, die eine Falsche Collation hat. Die DB konnte ich mit dem Befehl ALTER DATABASE <DB-NAM> COLLATE SQL_Latin1_General_CP1_CI_AS ändern. Diese Anweisung ändert nicht die bestehenen Tabellen. Jetzt meine Frage wie kann ich rausfinden welche Spalte die falsche Collation hat? Im EnterpriseManager kannst Du Dir die Tabellen anschauen. In allen Text-Spalten wie z.B. varchar, nvachar etc. ist eine Sortierung angegeben. Enweder dort oder per SQL ändern (für jede Tabelle/TextSpalte). Beispiel für varchar(50) Spalte: ALTER TABLE <Tabelle> ALTER COLUMN <Spaltenname> varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS Weitere Informationen findest Du in der Onlinehilfe unter "COLLATE". Gruß Kai Zitieren Link zu diesem Kommentar
nerd 28 Geschrieben 21. Januar 2010 Melden Teilen Geschrieben 21. Januar 2010 Hi, wichtig zu wissen: Du kannst die collation nur ändern wenn du alle FKs, Indizes und constrains gedroped hast... Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 21. Januar 2010 Melden Teilen Geschrieben 21. Januar 2010 Mir ist grade noch so, als ob bei SQL Server 2000 auch noch das Thema RebuildM ins Spiel kam... SQL Server Forums - How to change default collate in SQL Changing server collation Aber wenn ich die Links richtig interpretiere und die grauen Zeiten in meinem Hirn Revue passieren lasse, musst du das nur machen, wenn du die Default Collation des Servers ändern willst. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.