在SQL Server中可以运行什么T-SQL命令来查找表或数据库的字符集?确定表/数据库的字符集?
编辑: Server版本:Microsoft SQL Server的2008 R2(RTM) - 10.50.1600.1(X64)
在SQL Server中可以运行什么T-SQL命令来查找表或数据库的字符集?确定表/数据库的字符集?
编辑: Server版本:Microsoft SQL Server的2008 R2(RTM) - 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';
如果它是< 9.0那么您使用的是SQL Server 2000或更低版本。对于2000年我相信你可以检查类似的列(例如syscolumns.collationid
列)。
要检查的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
柱
SELECT name, collation_name
FROM syscolumns
WHERE OBJECT_ID IN
(
SELECT OBJECT_ID
FROM sysobjects
WHERE type = 'U'
AND name = 'TableNameGoesHere'
)
AND name = 'ColumnNameGoesHere'
的字符集取决于列的数据类型(比SQL Svr的2005以下)。你可以使用什么样的使用此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以UCS-2格式存储Unicode数据,因此这些数据类型的character_set_name是UNICODE。
运行SQL Server Management Studio并运行'Select @@ Verion'来检查SQL Server的版本。 –
请参阅'DATABASEPROPERTYEX'和'SERVERPROPERTY' – Lijo