如何确定 SQL Server 实例是否区分大小写

6

如何确定 SQL Server 2005 实例是否允许区分大小写的数据库?

所谓区分大小写,是指数据库中对象的大小写敏感性,即以下两个语句不等价:

SELECT * FROM TABLE
SELECT * FROM table

我在服务器的属性页面(在管理工具中)查看了,但是没有找到它。


尽管事实准确,到目前为止的回复都涉及SQL服务器处理与数据库内容相关的大小写敏感性。OP的问题是关于SQL语句本身中使用的标识符的大小写敏感性。 - mjv
3个回答

16
SELECT DATABASEPROPERTYEX('DatabaseNameHere', 'Collation') SQLCollation;

返回 "SQL_Latin1_General_CP1_CI_AS",CI 指示了不区分大小写。


谢谢,只是为了确认(对于其他可能遇到这个问题的人),排序规则决定数据库对象(如表)是否相等,以及确定存储在数据库中的文本值是否相等。 - Justin
@kragen2uk:当然。对象名称存储在sys.objects中,该对象受到排序规则的影响... - gbn

2
在管理工作室中,右键单击对象资源管理器中的实例,然后单击“属性”以查看服务器属性。在“常规”部分查看排序规则。默认的不区分大小写设置是SQL_Latin1_General_CP1_CI_AS。区分大小写的设置为Latin1_General_CS_AS。请保留HTML标签。

1

数据库的排序规则可以与服务器的排序规则不同,没有限制。

创建数据库时,您可以在那里指定它,或者它会使用模型数据库的排序规则(应该是服务器排序规则)。

SELECT
    DATABASEPROPERTYEX('MyDB', 'Collation'), 
    SERVERPROPERTY ('Collation')

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