Wie Sie legen die Sortierung für eine Verbindung in SQL Server?

Wie kann ich die Sortierung in SQL Server wird für die Dauer der Verbindung?

Nicht, bis ich eine Verbindung zum SQL-Server muss ich wissen, welche Sortierung ich verwenden möchte.

z.B. einen browser mit Sprache fr-IT hat mit der web-site. Fragen habe ich am laufen, die Verbindung, die ich Folgen wollen französische Sprache, die Italien-Variante Sortierung.

Stelle ich mir eine hypothetische Verbindung level-Eigenschaft, Analog zum SET ANSI_NULLS OFF, aber für die Sortierung1:

SET COLLATION_ORDER 'French_CI_AS'

SELECT TOP 100 FROM Orders
ORDER BY ProjectName

und später

SELECT * FROM Orders
WHERE CustomerID = 3277 
AND ProjectName LIKE '%l''ecole%'

und später

UPDATE Quotes
SET IsCompleted = 1
WHERE QuoteName = 'Cour de l''école'

Zur gleichen Zeit, wenn ein chinesischen Kunden verbindet:

SET COLLATION_ORDER Chinese_PRC_CI_AI_KS_WS

SELECT TOP 100 FROM Orders
ORDER BY ProjectName

oder

SELECT * FROM Orders
WHERE CustomerID = 3277 
AND ProjectName LIKE '學校'

oder

UPDATE Quotes
SET IsCompleted = 1
WHERE QuoteName = '學校的操場'

Nun ich könnte verändern jeder SELECT - Anweisung in das system zu erlauben, mich zu übergeben Sortierung:

SELECT TOP 100 FROM Orders
WHERE CustomerID = 3278
ORDER BY ProjectName COLLATE French_CI_AS

Aber Sie können nicht passieren Sie eine Sortierung, um als einen parameter an eine gespeicherte Prozedur:

CREATE PROCEDURE dbo.GetCommonOrders 
   @CustomerID int, @CollationOrder varchar(50)
AS

SELECT TOP 100 FROM Orders
WHERE CustomerID = @CustomerID
ORDER BY ProjectName COLLATE @CollationOrder

Und die COLLATE - Klausel kann mir nicht helfen, wenn die Durchführung einer UPDATE oder eine SELECT.

Hinweis: Alle string-Spalten in der Datenbank alle bereits nchar, nvarchar oder ntext. ich spreche nicht über die Standardsortierung angewendet auf einen server, Datenbank, Tabelle oder Spalte, die für nicht-unicode-Spalten (D. H. char, varchar, text). ich spreche über die Sortierung von SQL Server verwendet wird, wenn beim vergleichen und Sortieren von strings.


Wie kann ich festlegen, pro-Verbindung Sortierung?

Siehe auch

1 hypothetische sql aufweist locale Probleme

Die Sortierung ist eine Eigenschaft der Datenbank und/oder Tabellen/Spalten - es ist nicht etwas, das man wechseln kann dynamisch für jede Verbindung...
Es ist nicht ganz eine Eigenschaft einer Datenbank, Tabellen und Spalten. Es kann eine Eigenschaft eines ORDER BY als gut.
Leider ist diese Frage, auch wenn diese, keine Antwort hat. @devio ist richtig.
In Ihrem statement schreiben Sie SORTIEREN auf einer separaten Zeile nach der SQL-Anweisung. Dies ist irreführend, da die COLLATE gehört zu der letzten Spalte der ORDER BY-Klausel. Entfernen Sie die BESTELLUNG DURCH, und es wird scheitern.

InformationsquelleAutor Ian Boyd | 2011-08-26

Schreibe einen Kommentar