我的主要生产数据库是SQL Server 2014,默认语言设置为英语,当然,日期被视为MM/dd/yyyy
。
现在,出于与遗留应用程序的兼容性原因,我必须使用language = Italian创建一个新数据库,并将日期视为dd/MM/yyyy
。
谷歌搜索了一下,我发现我必须使用部分包含选项声明这个新数据库,这样我就可以进一步选择意大利语作为数据库语言。
到目前为止一切顺利,但是当我尝试创建新数据库时,会出现以下错误:
sp_configure值'包含数据库身份验证'必须设置为1才能创建包含的数据库 您可能需要使用RECONFIGURE来设置value_in_use。
建议的程序是:
sp_configure 'contained database authentication', 1;
GO
RECONFIGURE;
GO
问题是:这是我的生产数据库,我篡改了全局实例参数,这对现有数据库是否安全,还是可能会遇到可能的影响?
答案 0 :(得分:1)
您没有在数据库级别设置语言设置(通常)。但是,可以轻松地为特定登录设置语言设置;然后,无论Login连接到哪个数据库,它都将使用该语言的设置。
创建登录时,将语言设置为WITH
子句的一部分。例如:
CREATE LOGIN bob WITH DEFAULT_LANGUAGE=[British]...;
这意味着登录[bob]
将(默认情况下)使用英语(对于日期来说意味着它们将以dd/MM/yyyy
格式解释)。
由于您希望应用程序为其连接的数据库使用特定语言,如果您只是将登录名更改为使用相关的默认语言,则它所使用的任何连接都将使用该语言(除非它在其中覆盖它)语句)。