πŸ”§ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate Π² MS SQL: простоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate Π² MS SQL, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ столбца Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для столбца 'column_name' Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 'table_name' Π½Π° 'new_collation_name':


ALTER TABLE table_name
ALTER COLUMN column_name
COLLATE new_collation_name

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ столбСц 'column_name' Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 'table_name' с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ COLLATE new_collation_name.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ 'table_name', 'column_name' ΠΈ 'new_collation_name' ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями вашСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ столбца.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ collate Π² MS SQL

Collate Π² MS SQL - это свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт порядок сортировки ΠΈ сравнСния для Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ столбца ΠΈΠ»ΠΈ выраТСния Π² SQL Server, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ нСсколько способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

1. ИзмСнСниС collate Π² запросС

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ COLLATE Π² вашСм SQL-запросС. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

SELECT column_name COLLATE new_collation
FROM table_name
WHERE condition;

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ `column_name` - это имя столбца, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate, `new_collation` - Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ collation, `table_name` - имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π° `condition` - условиС для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

2. ИзмСнСниС collate Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ COLLATE ΠΏΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

CREATE TABLE #temp_table
(
    column_name data_type COLLATE new_collation,
    ...
);

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ `#temp_table` - это имя Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, `column_name` - имя столбца, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate, `data_type` - Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… столбца ΠΈ `new_collation` - Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ collation.

3. ИзмСнСниС collate для столбца Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для столбца Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ALTER TABLE table_name
ALTER COLUMN column_name data_type COLLATE new_collation;

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ `table_name` - это имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, `column_name` - имя столбца, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate, `data_type` - Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… столбца ΠΈ `new_collation` - Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ collation.

4. ИзмСнСниС collate для всСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для всСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER DATABASE. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ collate для всСх Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ столбцов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ALTER DATABASE database_name
COLLATE new_collation;

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ `database_name` - это имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° `new_collation` - Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ collation.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate Π² MS SQL.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ИзмСнСниС collate Π² запросС

SELECT name COLLATE Cyrillic_General_CI_AS
FROM students
WHERE grade = 'A';

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ COLLATE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для столбца `name` Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ `students`. ΠœΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π° студСнтов, Ρ‡ΡŒΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ€Π°Π²Π½Ρ‹ 'A'.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ИзмСнСниС collate Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅

CREATE TABLE #temp_table
(
    name varchar(50) COLLATE Cyrillic_General_CI_AS,
    ...
);

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ COLLATE ΠΏΡ€ΠΈ создании Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ `#temp_table`. ΠœΡ‹ измСняСм collate для столбца `name` Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `Cyrillic_General_CI_AS`.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: ИзмСнСниС collate для столбца Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅

ALTER TABLE students
ALTER COLUMN name varchar(50) COLLATE Cyrillic_General_CI_AS;

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для столбца `name` Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ `students`. ΠœΡ‹ измСняСм Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… столбца Π½Π° `varchar(50)` ΠΈ collate Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `Cyrillic_General_CI_AS`.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4: ИзмСнСниС collate для всСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ALTER DATABASE my_database
COLLATE Cyrillic_General_CI_AS;

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER DATABASE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate для всСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΈΠΌΠ΅Π½Π΅ΠΌ `my_database` Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `Cyrillic_General_CI_AS`.

НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΡ‚ΡŒ collate Π² MS SQL. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ способы Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… потрСбностСй. Π£Π΄Π°Ρ‡ΠΈ Π² Π²Π°ΡˆΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ…!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

16. T-SQL MS SQL SERVER ALTER TABLE ADD COLUMN ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅/ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…/

ИзмСнСниС Ρ‚Π°Π±Π»ΠΈΡ† Π² Microsoft SQL Server ALTER TABLE - Π²ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

How to Change SQL Collation Setting Live Example || Is It Possible to change SQL Collation Settings

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”§ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ collate Π² MS SQL: простоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ