Jakie polecenie T-SQL można uruchomić, aby znaleźć zestaw znaków tabeli lub bazy danych w programie SQL Server?ustalanie zestawu znaków tabeli/bazy danych?
edit: wersja serwera: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
Jakie polecenie T-SQL można uruchomić, aby znaleźć zestaw znaków tabeli lub bazy danych w programie SQL Server?ustalanie zestawu znaków tabeli/bazy danych?
edit: wersja serwera: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
Można sprawdzić wersję używając
SELECT @@VERSION;
Jest to 9.00 lub nowszej, można sprawdź sortowania kolumny przy użyciu
SELECT collation_name FROM sys.columns
WHERE name = 'column name'
AND [object_id] = OBJECT_ID('dbo.table name');
a do bazy danych przy użyciu
SELECT collation_name FROM sys.databases
WHERE name = 'database name';
Jeśli jest to < 9.0, to używasz programu SQL Server 2000 lub niższego. W 2000 roku wierzę, że możesz sprawdzić podobne kolumny (np. syscolumns.collationid
dla kolumn).
Aby sprawdzić sortowanie SQL Server uruchomić to w SQL Server Management Studio (umieścić nazwę bazy danych w odpowiednim miejscu)
SELECT DATABASEPROPERTYEX('DatabaseNameGoeshere', 'Collation') DatabaseCollation;
Należy pamiętać, że ustawienia sortowania można ustawić każdy poziom
Server
SELECT SERVERPROPERTY('Collation') as ServerCollation
Database
SELECT DATABASEPROPERTYEX('DatabaseNameGoeshere', 'Collation') DatabaseCollation;
Kolumna (SQL Svr 2005 lub nowszy)
Select TABLE_NAME, COLUMN_NAME, Columns.COLLATION_NAME
From INFORMATION_SCHEMA.COLUMNS
Kolumna (niższa niż 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'
Otrzymuję zero jako odpowiedź. Co to znaczy? – shealtiel
Czy umieściłeś odpowiednią nazwę bazy danych w zapytaniu? –
'sys.columns' i' sys.objects' są niepoprawne
Zestaw znaków zależy od typu danych kolumny. można zorientować się, jakie zestawy znaków używane są do kolumn w bazie danych, jak również sortowania korzystających z tej 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;
Jeśli używa domyślnego zestawu charakteru, character_set_name należy iso_1 (ISO 8859- 1) dla typów danych char i varchar. Ponieważ nchar i nvarchar przechowują dane Unicode w formacie UCS-2, character_set_name dla tych typów danych to UNICODE.
Uruchom program SQL Server Management Studio i uruchom 'Select @@ Verion', aby sprawdzić wersję SQL Server. –
Zobacz 'DATABASEPROPERTYEX' i' SERVERPROPERTY' – Lijo