Frage

Geschichte: Ich hatte einen Einsatz die andere Nacht, die einen Skript beteiligt Ausführung, die eine gespeicherte Prozedur erstellt. Allerdings, wenn das Skript ausgeführt wird, ist ein Fehler aufgetreten über die Sortierung der DB.

Das Problem: Mit Hilfe unseres Freundes Google schaffte ich es, um herauszufinden, dass das Problem, das ich war, weil auf unserer Live-Umgebung db einer Sortierung hat und die temporäre DB Sortierungs ist anders, und ich erhalte eine Fehlermeldung, wenn sie in eine Variable einzufügen versuchen, Tabelle.

Die Frage: Was ist der beste Weg nach vorn, oder meine Optionen?

Umwelt: SQL 2000

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Wir haben in diesem mit temporären Datenbanken laufen, die wir für Integrationstests verwenden, in Bezug auf die Entwicklung und Produktion von Datenbanken. Was wir getan haben, ist, um sicherzustellen, dass alle Datenbanken die gleiche Sortierung verwenden. In Ihrem Fall sollten Sie wahrscheinlich zu dem in der Zieldatenbank verwendet eine einfache Suchen / Ersetzen in der Skriptdatei tun und einfach die Sortierung ändern können.

Edit: im Skript zu ändern erhalten Sie weiterleiten jetzt; auf längere Sicht wollen Sie sicherstellen, dass die gleiche Sortierung in allen zugehörigen Datenbanken verwenden.

Andere Tipps

Es gibt einige Lösungen

  • Stellen Sie sicher, dass alle collate in der gleichen db passen. Sonst werden Sie in für einige Schmerzen.
  • Das Richtige zu tun, wenn Ihre temporären Tabellen ist nicht viele Informationen enthalten sie mit der gleichen collate wie DEST Tabellen neu zu erstellen.
  • Wenn das nicht eine Option, für String-Typen suchen, und zwingen Sie Ihre collate zum Ziel db ein

     INSERT INTO dest_db..DEST_TABLE ( DEST_VARCHAR_COLUMN )
     SELECT TMP_VARCHAR_COLUMN COLLATE <dest_db_collate>
     FROM tmp_db..#TEMP_TABLE
    

Die offensichtliche Lösung ist Ihre Entwicklung Datenbank mit der gleichen Zusammenstellung wie die Produktionsdatenbank neu zu installieren.

Wenn Sie nicht, zum Beispiel, wenn Sie mehrere Produktionsdatenbanken mit unterschiedlichen Sortierungen haben, können Sie Ihren Updates stellen Sie sicher, entweder nicht oder als Ganze erfolgreich zu sein. Legen Sie eine Transaktion um alle gespeicherten Prozedur Updates und stellen Sie sicher, zu verwenden, verändern, nicht fallen / erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top