заказ; этот порядок исходит из сопоставления столбца. Произвольное применение другого сопоставления при выполнении поиска по индексу сводит на нет любые индексы

могу установить параметры сортировки, которые SQL Server будет использовать в течение этого соединения?

Пока я не подключусь к SQL Server, я не знаю, какую сортировку я хочу использовать.

например браузер с языкомfr-IT подключился к веб-сайту. Любые запросы, которые я запускаю на этом соединении, я хочу следоватьФранцузский язык, итальянский вариант сверка.

я предполагаю гипотетическое свойство уровня соединения, аналогичноSET ANSI_NULLS OFF, но для сопоставления1:

SET COLLATION_ORDER 'French_CI_AS'

SELECT TOP 100 FROM Orders
ORDER BY ProjectName

и позже

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

и позже

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

В то же время, когдакитайский язык клиент подключается:

SET COLLATION_ORDER Chinese_PRC_CI_AI_KS_WS

SELECT TOP 100 FROM Orders
ORDER BY ProjectName

или же

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

или же

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

Сейчас ямог изменить каждыйSELECT оператор в системе, чтобы я мог передать в сопоставлении:

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

Но вы не можете передать порядок сопоставления в качестве параметра хранимой процедуре:

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

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

ИCOLLATE пункт не может помочь мне при выполненииUPDATE илиSELECT.

Примечание: Все строковые столбцы в базе данных уже всеnchar, nvarchar или жеntext, я не говорю о сопоставлении по умолчанию, применяемом к серверу, базе данных, таблице или столбцу для столбцов, отличных от Юникода (т.е.char, varchar, text). я говорю о сопоставлении, используемом SQL Server при сравнении и сортировке строк.

Как я могу указатьсоединение сверка?

Смотрите такжеАналогичный вопрос, но для ADO.net и строк подключенияАналогичный вопрос, но для ASP.net MVC2 и MySQL

1 гипотетический sql, который показывает проблемы локали

Ответы на вопрос(1)

Ваш ответ на вопрос