Wenn bei der Server-Sortierung eines SQL-Servers die Groß-/Kleinschreibung beachtet wird und bei einer Datenbank die Groß-/Kleinschreibung nicht beachtet wird, wird bei Abfragen die Groß-/Kleinschreibung beachtet oder nicht? Ich dachte, dass es eher auf der Datenbank als auf der Serversammlung basieren sollte, aber einen kurzen Test gemacht zu haben scheint, der nicht der Fall zu sein scheint. Wer weiß es sicher?Wenn bei der Server-Sortierung eines SQL-Servers die Groß-/Kleinschreibung beachtet wird und bei einer Datenbank die Groß-/Kleinschreibung nicht beachtet wird, wird bei Abfragen die Groß-/Kleinschreibung beachtet oder nicht?
Antwort
Nun, ich denke, this erklärt es:
Die Sortierung einer Kennung auf der Ebene abhängt, mit der sie definiert ist. Bezeichnern von Objekten auf Instanzebene, z. B. Logins und Datenbanknamen, wird die Standardsortierung der Instanz zugewiesen. Bezeichnern von Objekten in einer Datenbank, z. B. Tabellen, Sichten und Spaltennamen, wird die Standardsortierung der Datenbank zugewiesen. Variablen, GOTO-Beschriftungen, temporäre gespeicherte Prozeduren und temporäre Tabellen können erstellt werden, wenn der Verbindungskontext einer Datenbank zugeordnet und dann referenziert wird, wenn der Kontext zu einer anderen Datenbank gewechselt wurde. Daher befinden sich die Bezeichner für Variablen, GOTO-Bezeichnungen und temporäre Tabellen in der Standardsortierung der Instanz.
Dies bedeutet, dass Variablen, möglicherweise einschließlich Parameter, Groß- und Kleinschreibung beachten, auch bei einer Sortierung ohne Berücksichtigung von Groß-/Kleinschreibung. Das sehe ich in meinen Tests: Probleme mit dem Fall von Parametern, aber keine Probleme mit dem Fall von Tabellen-/Spaltennamen.
Es gibt verschiedene Ebenen, auf denen die Sortierung angegeben werden kann - sie könnte auch auf Spaltenebene festgelegt werden, die Vorrang hat. Normalerweise wird die Kollatierung einer Spalte so eingestellt, dass sie den Datenbankstandard verwendet, der - sofern beim Erstellen der Datenbank nicht explizit angegeben - standardmäßig die Kollatierung des Servers verwendet.
Hinweis: Wenn Sie eine Datenbank mit einer Kollatierung erstellen und dann die Kollatierung der Datenbank ändern, wirkt sich dies nicht auf vorhandene Spalten aus, die mit anderen Kollatierungen definiert wurden. Dies würde nur für Spalten gelten, die ab diesem Zeitpunkt für diese Datenbank erstellt wurden. Sie müssten also die vorhandenen Spalten ändern.
Welchen Test haben Sie durchgeführt?
Noch mehr Spaß kommt bei der Arbeit mit temporären Tabellen. Sie verfügen außerdem über die Kollatierung auf Serverebene, was die Arbeit mit Daten aus unterschiedlich sortierten Datenbanken erleichtert. –
, um es noch mehr Spaß zu machen, können Sie die Standardsortierung der Temp-Datenbank ändern und einige wirklich verwirrende Ergebnisse erhalten. –