Какую команду T-SQL можно запустить, чтобы найти набор символов таблицы или базы данных в SQL Server?
изменить: Версия сервера: Microsoft SQL Server 2008 R2 (окончательная первоначальная версия) - 10.50.1600.1 (X64)
Какую команду T-SQL можно запустить, чтобы найти набор символов таблицы или базы данных в SQL Server?
изменить: Версия сервера: Microsoft SQL Server 2008 R2 (окончательная первоначальная версия) - 10.50.1600.1 (X64)
Вы можете проверить версию, используя
SELECT @@VERSION;
Это 9.00 или более, вы можете проверить сортировку столбца, используя
SELECT collation_name FROM sys.columns
WHERE name = 'column name'
AND [object_id] = OBJECT_ID('dbo.table name');
И для базы данных, использующей
SELECT collation_name FROM sys.databases
WHERE name = 'database name';
Если это & lt; 9.0, то вы используете SQL Server 2000 или ниже. В 2000 году я считаю, что вы можете проверить аналогичные столбцы (например, syscolumns.collationid
для столбцов).
Набор символов зависит от типа данных столбца. Вы можете понять, какие наборы символов используются для столбцов в базе данных, а также для сопоставлений с использованием этого SQL:
select data_type, character_set_catalog, character_set_schema, character_set_name, collation_catalog, collation_schema, collation_name, count(*) count
from information_schema.columns
group by data_type, character_set_catalog, character_set_schema, character_set_name, collation_catalog, collation_schema, collation_name;
Если он использует набор символов по умолчанию, character_set_name должен быть iso_1 (ISO 8859-1) для типов данных char и varchar. Так как nchar и nvarchar хранят данные Unicode в формате UCS-2, для этих типов данных имя_имя_имя_имя_собывает UNICODE.
Чтобы проверить, что Collation SQL Server запустил это в SQL Server Management Studio (поместите свое имя базы данных в нужное место)
SELECT DATABASEPROPERTYEX('DatabaseNameGoeshere', 'Collation') DatabaseCollation;
Обратите внимание, что настройки сортировки могут быть установлены на каждом уровне
Сервер
SELECT SERVERPROPERTY('Collation') as ServerCollation
База данных
SELECT DATABASEPROPERTYEX('DatabaseNameGoeshere', 'Collation') DatabaseCollation;
Столбец (SQL Svr 2005 или выше)
Select TABLE_NAME, COLUMN_NAME, Columns.COLLATION_NAME
From INFORMATION_SCHEMA.COLUMNS
Столбец (ниже SQL Svr 2005)
SELECT name, collation_name
FROM syscolumns
WHERE OBJECT_ID IN
(
SELECT OBJECT_ID
FROM sysobjects
WHERE type = 'U'
AND name = 'TableNameGoesHere'
)
AND name = 'ColumnNameGoesHere'