SQL Server区分大小写的数据库名称

问题描述 投票:1回答:2

在MS SQL Sever中,可能具有区分大小写的数据库名称。换句话说,有没有办法在同一个实例'create database db1'和'create database DB1'上创建2个数据库?

如果是,如何启用此功能? (我尝试自己做,并且它不允许我创建第二次,但我不确定我是否错过了任何设置)

注意:我在SO上看到了关于此的现有问题,但它们似乎是指数据库中的对象,而我指的是数据库名称本身。

(问题的原因不是以这种方式设置数据库,而是要知道是否可能发生这样的情况,以便我可以包括在我的测试中)

sql-server case-sensitive
2个回答
0
投票

您可以通过将安装时的服务器排序规则设置为区分大小写,或使用区分大小写的排序规则通过recreating the master database更改它来完成此操作。由于master数据库是用户级元数据的数据库,因此如果有任何内容会强制区分大小写的服务器对象名,那么master数据库就会这样做。

然而,我不知道它是多么僵硬。我有一台服务器整理设置为Latin1_General_CS_AS的2k8R2服务器,我必须在use语句中或从链接服务器调用时正确拼写数据库名称。但是,附加到该服务器的数据库都不具有不区分大小写的排序规则。如果您当前的数据库不区分大小写,则可能使用不区分大小写的名称。我不知道。

我也从未尝试在该服务器上创建一个与现有数据库同名的数据库,除非具有不同的大小写。我不知道是否允许它。


0
投票

是的,您可以通过将collat​​ion属性调整为所需数据库的“CS”来在同一实例中创建数据库。 Reference

默认情况下,MSQL Server不区分大小写;但是,可以创建区分大小写的SQL Server数据库,甚至可以使特定的表列区分大小写。确定数据库或数据库对象是否要检查其“COLLATION”属性并在结果中查找“CI”或“CS”的方法。

CI =不区分大小写的CS =区分大小写

© www.soinside.com 2019 - 2024. All rights reserved.