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

3
在MS SQL Server中,可以创建大小写敏感的数据库名称。换句话说,是否有办法在同一实例上创建两个数据库“create database db1”和“create database DB1”?
如果可以,请问如何启用?(我尝试自己操作,但没有允许我第二次创建,但我不确定是否错过了任何设置)
注意:我已经在SO上看到了关于这个问题的现有问题,但它们似乎是指数据库中的对象,而我是指数据库名称本身。
(提出这个问题的原因不是为了以这种方式设置数据库,而是为了知道是否可以发生这种情况,以便我可以在我的测试中包括它)

1
请查看此链接 http://www.mssqltips.com/sqlservertip/2913/sql-server-case-sensitive-collations-and-dmvs/ - Pரதீப்
@AllanS.Hansen - 不确定您在关注什么与物理数据库文件有关的问题。按照惯例,文件的名称类似于数据库的名称,但这只是一种惯例。 - Damien_The_Unbeliever
@NoDisplayName:感谢提供链接。引用页面上的话:“当使用区分大小写排序规则的数据库时,每个对象都遵守相同的规则”……我想知道的是关于数据库名称本身。它是否变成了区分大小写的? - bitflood
@Damien_The_Unbeliever 这就是为什么我说它需要小心处理的原因。 - Allan S. Hansen
如果您使用区分大小写的排序规则,则它是区分大小写的。如果您为主数据库使用区分大小写的排序规则,则您的数据库名称可能是区分大小写的。 - Nick.McDermaid
显示剩余2条评论
2个回答

3
你可以通过在安装时将服务器排序设置为区分大小写,或者使用区分大小写的排序重新创建主数据库 master database)来实现此目标。由于主数据库是用户级元数据的数据库,因此如果有任何东西可以强制执行区分大小写的服务器对象名称,那么就是主数据库。
我不知道它有多严格。我有一个服务器,其服务器排序设置为Latin1_General_CS_AS,在使用语句或从链接服务器调用时,必须正确拼写数据库名称。但是,附加到该服务器的所有数据库都没有区分大小写的排序。如果您当前的DB不区分大小写,则可以使用不区分大小写的名称。我不知道。
我也从未尝试在具有与现有DB相同但大小写不同的名称的服务器上创建DB。我不知道它是否允许这样做。

1

是的,您可以通过将所需数据库的排序规则属性调整为“CS”来在同一实例中创建数据库。参考资料

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接