Sortieren benutzerdefinierter Datenbanken zur Übereinstimmung mit Masterdatenbanken
Diese Regel überprüft, ob benutzerdefinierte Datenbanken unter Verwendung einer Datenbanksortierung definiert sind, die mit der Sortierung von master oder model übereinstimmt.
Empfehlungen zu Best Practices
Es wird empfohlen, dass die Sortierungen benutzerdefinierter Datenbanken mit der Sortierung von master oder model übereinstimmen. Andernfalls können Sortierungskonflikte auftreten, die verhindern könnten, dass Code ausgeführt wird. Wenn beispielsweise eine gespeicherte Prozedur eine Tabelle mit einer temporären Tabelle verknüpft und die Sortierungen der benutzerdefinierten Datenbank und der model-Datenbank unterschiedlich sind, kann SQL Server den Batch beenden und einen Sortierungskonfliktfehler zurückgeben. Dies ist darauf zurückzuführen, dass temporäre Tabellen in tempdb erstellt werden, deren Sortierung auf model basiert.
Wenn Sortierungskonfliktfehler auftreten, ziehen Sie eine der folgenden Lösungen in Betracht:
Exportieren Sie die Daten aus der Benutzerdatenbank, und importieren Sie diese in neue Tabellen, die dieselbe Sortierung aufweisen wie die master- und model-Datenbanken.
Erstellen Sie die Systemdatenbanken so neu, dass sie eine Sortierung verwenden, die mit der Sortierung der Benutzerdatenbank übereinstimmt. Weitere Informationen zum Neuerstellen der Systemdatenbanken finden Sie unter Neuerstellen von Systemdatenbanken.
Ändern Sie alle gespeicherten Prozeduren, die Benutzertabellen mit Tabellen in tempdb verknüpfen, sodass die Tabellen in tempdb unter Verwendung der Sortierung der Benutzerdatenbank erstellt werden. Fügen Sie zu diesem Zweck den Spaltendefinitionen der temporären Tabelle die Klausel COLLATE database_default hinzu, wie im folgenden Beispiel gezeigt:
CREATE TABLE #temp1 ( c1 int, c2 varchar(30) COLLATE database_default )