2.3.1 default language选项
SQL Server定义了33种自然语言,每种语言确定了一种日期解释方法,这些语言定义存储在系统表syslanguages中,每种语言由一个语言标识符(ID)标识。syslanguages的定义如表2-5所示。
表2-5 syslanguages系统表定义
|
列名 |
数据类型 |
描述 |
|
Langid |
smallint |
惟一语言ID |
|
Dateformat |
nchar(3) |
日期顺序(例如MDY、YMD等) |
|
Datefirst |
tinyint |
一周的第1天,其值为1~7。1表示星期一,2表示星期二,依此类推,7表示星期日 |
|
Upgrade |
int |
留作系统使用 |
|
Name |
sysname |
正式语言名称。例如:us_english |
|
Alias |
sysname |
备用语言名称。例如:English |
|
Months |
nvarchar(372) |
按照1月~12月的顺序排列的用逗号分隔的月份全称列表,每个名称最多包含20个字符 |
|
Shortmonths |
varchar(132) |
按照1月~12月的顺序排列的用逗号分隔的缩写月份名称列表,每个名称最多包含9个字符 |
|
Days |
nvarchar(217) |
按照1月~12月的顺序排列的,用逗号分隔的天名称列表,每个名称最多包含30个字符 |
|
Lcid |
int |
此种语言的Windows NT区域设置ID |
|
Mslangid |
smallint |
SQL Server消息组ID |
SQL Server实例的默认语言由系统选项default language确定,可以通过sp_configure修改:
EXEC sp_configure 'default language' , [langid]
langid是语言ID,对应系统表syslanguages的langid列。例如,下面的代码把当前实例的默认语言设置为English(langid=0)
USE master
EXEC sp_configure 'default language',0
RECONFIGURE WITH OVERRIDE
每个SQL Server实例对所有与服务器的连接都使用默认语言,但是每个连接也可以自行设置用于连接的SQL Server语言。
(1) Microsoft ActiveX数据对象和OLE DB应用程序可以在连接时所指定的提供程序字符串中包括language关键字。对于OLE DB应用程序,也可以在连接之前,设置提供程序专用属性:SSPROP_INIT_CURRENTLANGUAGE。
(2) 开放式数据库连接(ODBC)应用程序可以在SQLDriverConnect上所指定的连接字符串中包括language关键字。ODBC应用程序还可以在SQL Server ODBC数据源定义中指定语言设置。
(3) DB-Library应用程序可以使用dblogin分配loginrec,然后在调用dbopen打开连接之前使用DBSETNATLANG宏指定语言设置。
(4) 任何应用程序都可以使用SET LANGUAGE语句指定SQL Server语言。





