Korrekte Methode zum Festlegen der Sortierung in TSQL der temporären Tabellenspalte

9

Ich habe eine temporäre Tabelle, die Daten mit Masseneinfügung eingefügt bekommt. Wenn ich jedoch Daten aus der temporären Tabelle in eine normale Tabelle aktualisieren möchte, führt dies zu Sortierproblemen. Ich weiß, wie ich das lösen kann, indem ich etwas verwende:

%Vor%

Aber gibt es eine Möglichkeit, die Kollatierung in der temporären Tabelle sofort festzulegen, so dass Sie in der Verknüpfung keine Kollatierung verwenden müssen? Etwas wie:

%Vor%

Ist das korrekt codiert und müssen Sie die Sortierung einmal pro Tabelle oder pro Spalte festlegen? Und wenn die Sortierung in der Tabelle festgelegt ist, können Sie dann die Sortierung von der Verknüpfung ausschließen?

    
J3FFK 06.05.2014, 20:09
quelle

2 Antworten

12

Sie können COLLATE database_default in der temporären Tabellendefinition verwenden, indem Sie die von Ihnen beschriebene Syntax verwenden. Dadurch wird jede Spalte sortierkompatibel mit Ihrer Datenbank.

Sie müssen es explizit pro Spalte setzen. Es gibt keine Standardsortierung auf Tabellenebene. Es gibt eine Standardsortierung auf Datenbankebene, aber für tempdb ist dies immer gleich der Standardsortierung der model -Datenbank, die standardmäßig die Serversortierung ist.

Wenn Sie die Sortierung für die Tabellenspalte festlegen, können Sie sie in einer Abfrage, wie Sie bereits erfahren haben, noch überschreiben.

    
Christian Hayter 06.05.2014, 20:13
quelle
1

Wir sind jetzt auf dasselbe Problem gestoßen. Anstatt die Sortierung zu jedem temporären Tabellenjoin hinzuzufügen, haben wir lediglich die Erstellung der temporären Tabelle in eine Tabellenvariablendeklaration geändert.

    
IngoB 14.10.2016 08:15
quelle

Tags und Links