我使用的是 SQL Server 2005。当我执行SET DATEFORMAT mdy
时,它只是该特定会话的日期格式。当我从 Management Studio 断开连接并重新连接时,它不会采用这种格式。
但我想永久设置它。我该怎么做?
我使用的是 SQL Server 2005。当我执行SET DATEFORMAT mdy
时,它只是该特定会话的日期格式。当我从 Management Studio 断开连接并重新连接时,它不会采用这种格式。
但我想永久设置它。我该怎么做?
我不认为你可以。每个 msdn:
此设置仅在字符串转换为日期值时用于解释字符串。它不影响日期值的显示。
SET DATEFORMAT 的设置是在执行或运行时设置的,而不是在解析时设置的。
永久更改它的唯一方法是更改 sys.syslanguages 表,并且您不能像那样更改系统表。最好的办法是创建一个自定义日期解析函数来设置日期格式并返回适当的字符串值,但您仍然需要为每个日期调用该函数。将默认语言设置为“英式英语”而不是“英语”会有所帮助吗?
如果要在实例级别设置语言,则必须使用sp_configure
. 请记住,它只会影响所有未来的登录。但是,如果存在现有登录名,则必须执行ALTER LOGIN ... Default_Language
. 有关更改登录的更多信息
在您的情况下,它将如下所示。有关详细信息:在服务器级别配置默认语言
USE Database_Name
GO
EXEC sp_configure 'default language', 0 ; -- English_US
GO
RECONFIGURE ;
GO
您可以从 sys.syslanguages 表中读取语言 ID 并进行相应设置。有关系统语言的更多信息
注意:您需要提升权限才能获得更多关于安全性的权限,才能在服务器级别更改默认语言
默认情况下,将不带参数或只带第一个参数的 sp_configure 执行权限授予所有用户。要使用两个参数执行 sp_configure 以更改配置选项或运行 RECONFIGURE 语句,用户必须被授予 ALTER SETTINGS 服务器级权限。ALTER SETTINGS 权限由 sysadmin 和 serveradmin 固定服务器角色隐式持有。