SQL Server的syslanguage表应用一例

原创 2003年09月03日 22:42:00

-----------------------------------------------------------------------------------------------

作者:翁彦

欢迎转载,请保留此申明信息。

欢迎联系我,enhydra_boy@tom.com

----------------------------------------------------------------------------------------------

最近,在csdn论坛上,前后回答了两位位朋友的问题,觉得有必要总结一下。

问题是这样

1 SQL Server 2000是中文版的,想能按照英文方式显示日期格式?

2 SQL Server 2000是中文版的,想能购显示中文月名?

让我们来分析一下,显示日期格式肯定和language有关,而且应该和当前session的language设置有关,肯定和服务器,数据库是否是中英文无关。

那么第一个问题就很简单了,

只需要

set language us_english
select convert(varchar(20),getdate(),107)
set language 简体中文

结果如下

Changed language setting to us_english.
                    
--------------------
Sep 01, 2003

(所影响的行数为 1 行)

已将语言设置改为 简体中文。

但是第二个问题,似乎就不行了,我们可以测试一下

set language 简体中文

select convert(varchar(20),getdate(),107)

得到的却是

09 01,2003

不是需要的九月。

这需要进一步分析了。数据库支持的语言,应该有对应的日期月份简写的设置。

master.dbo.syslanguages就是存放了对应的信息。

可以查看以下syslanguages的结构

我们关心的是是其中的shortmonths和months这两项。
我们看到简体中文这一条,shortmonths,months都是01,02,03,...。

所以无论你怎么设置language,结果都是09 而不会是九月。

解决方法,大家都想到了。对了就是修改系统表。

use master
sp_configure 'allow update','1'
go
reconfigure with override
go
update dbo.syslanguages
set shortmonths='一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月',
months='一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月'  where name='简体中文'
go
sp_configure 'allow update','0'
go
reconfigure with override
go

然后重起一下数据库服务器。

然后运行
select convert(varchar(20),getdate(),107)
go

--------------------
九月 01, 2003


select convert(varchar(100),getdate(),9)
go
----------------------------------------------------------------------------------------------------
九月  1 2003 11:36:25:507AM

问题解决了。

看来,很多问题需要仔细的想一下,分析一下,看看文档,自己手工实践一下,都能迎刃而解。

 

sql server锁知识及锁应用

sql server锁(lock)知识及锁应用 一 关于锁的基础知识 二 锁的分析及应用系列 三 SQL Server 锁机制 悲观锁 乐观锁 实测解析 四 SQL Server 中WITH NOLO...
  • huwei2003
  • huwei2003
  • 2017年04月01日 18:30
  • 26335

sql server 2008表值函数的使用

场景:输入片区号,查询该片区的所有用户最后一次的消费记录。 有两张表:用户信息、流水账。如果用传统方法查: 1.查询该地区所有的人。 2.循环查询出每个人最后一次的消费记录问题:数据连接次数=人数+1...
  • u012662357
  • u012662357
  • 2016年04月06日 17:34
  • 1218

9、SQL Server:创建和使用临时表(转)

本文来自:http://blog.csdn.net/atian2009/article/details/6823129 创建临时表        方法一:      create table #...
  • xushaozhang
  • xushaozhang
  • 2017年02月16日 13:56
  • 322

SQL Server 创建表及其约束条件

NOT NULL 约束强制列不接受 NULL 值。 UNIQUE 约束唯一标识数据库表中的每条记录。 PRIMARY KEY...
  • csdn9_14
  • csdn9_14
  • 2016年09月21日 19:55
  • 6381

获取SQLSERVER 表结构信息

获取SqlServer2005表结构(字段,主键,外键,递增,描述) 1.获取表的基本字段属性 --获取SqlServer中表结构  SELECT syscolumns.name,sys...
  • aasmfox
  • aasmfox
  • 2015年08月14日 15:58
  • 2144

sqlserver 锁表语句以及解锁语句

锁定数据库的一个表  SELECT * FROM table WITH (HOLDLOCK)  注意: 锁定数据库的一个表的区别  SELECT * FROM table...
  • LazyLeland
  • LazyLeland
  • 2013年11月29日 10:03
  • 14706

sql server 表结构 导出 到excel

转载于:http://blog.163.com/chenluyu0910@126/blog/static/990422932011217102657776/
  • shandian534
  • shandian534
  • 2014年09月13日 09:23
  • 3898

SQL SERVER 如何按月创建表分区?

SQL SERVER 如何按月创建表分区
  • netyeaxi
  • netyeaxi
  • 2017年07月13日 19:48
  • 1552

SQL Server中获取所有数据库名、所有表名、所有字段名的SQL语句

转载: http://www.rjgc.org/article/26 1.获取所有数据库名: Select Name FROM Master.dbo.SysDatabases orDER ...
  • lingxyd_0
  • lingxyd_0
  • 2014年01月16日 13:57
  • 9321

用表来管理SQLServer中的扩展属性(描述)

数据字典是个好东东,人人都需要,但S大部分时间
  • yenange
  • yenange
  • 2014年05月29日 17:41
  • 1729
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server的syslanguage表应用一例
举报原因:
原因补充:

(最多只允许输入30个字)