Пример демонстрирует работу с COLLATE (сопоставлением, сортировкой, кодировкой) в СУБД MS SQL Server. В примере показано, как изменить сопоставление у базы данных, таблицы и отдельной колонки.
-- получить список всех доступных сопоставлений (COLLATE)
SELECT * FROM fn_helpcollations() ORDER BY name ASC
-- информация о сопоставлении (COLLATE) текущей базы данных
exec sp_helpsort;
-- либо
SELECT SERVERPROPERTY('Collation');
-- изменить COLLATE у базы данных
ALTER DATABASE [имя базы данных]
COLLATE Latin1_General_CI_AS
-- получить COLLATE колонок указанной таблицы
SELECT a.[name], a.[collation_name] FROM sys.columns AS a
INNER JOIN sys.objects AS b ON a.[object_id] = b.[object_id]
WHERE b.[name] = 'имя таблицы'
-- изменить COLLATE у отдельной колонки
ALTER TABLE [имя таблицы]
ALTER COLUMN [имя колонки] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS
-- вывод данных из колонки с указаным COLLATE
-- SELECT [поле] COLLATE Latin1_General_CI_AS FROM [таблица]
CREATE TABLE #tmp (name varchar(100)); --обратите внимание, varchar
INSERT INTO #tmp
SELECT 'привет'
SELECT name COLLATE Latin1_General_CI_AS FROM #tmp;
SELECT name COLLATE Cyrillic_General_CI_AS FROM #tmp;
DROP TABLE #tmp;