sql-server - sql server 排序规则是否意味着列名必须大小写正确?以及如何处理这个问题

标签 sql-server sql-server-2005 collation case-sensitive

在 SQL Server(2000 或 2005)中,是否可以设置数据库或服务器排序规则,以便标识符名称(表、列等)需要采用正确的大小写?如果是这样,所有区分大小写的排序规则都是如此还是它是一个单独的设置? (我一直认为区分大小写适用于数据,而不是对象名称)。

如果应用程序的存储过程和查询没有以一致的大小写编写,这可能会破坏应用程序吗?有没有办法处理这个问题,而不必确保所有查询都使用正确的大小写,例如设置数据库连接的排序规则?

我从现有应用程序的角度来看这个问题,该应用程序中可能包含大小写不一致的 sql 代码,并且我希望能够针对具有不同排序规则的数据库运行它。我需要哪些设置或者哪些数据库/服务器排序规则我不能与该应用程序一起使用?

最佳答案

排序规则决定您的查询是否不区分大小写。因此,确保您的架构适用于多种环境的唯一方法是让您的查询区分大小写。如果您的查询不一致,那么您的排序规则必须不区分大小写,否则它将不起作用。

http://msdn.microsoft.com/en-us/library/aa174903(SQL.80).aspx

需要注意的一件事是,一旦您使用某种排序规则设置了 SQL Server 环境,您就无法在不创建新的 SQL Server 实例的情况下更改它。因此,不区分大小写通常是最佳选择。然后努力保持查询的一致性。

我相信,一旦设置了排序规则,它就适用于数据和元数据。

关于sql-server - sql server 排序规则是否意味着列名必须大小写正确?以及如何处理这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/496628/

相关文章:

sql-server - UNION 和字面值,奇怪的结果

c# - 事务 : C# 期间的 MSDTC 异常

mysql 不区分大小写的问题,即使使用 COLLATE utf8_general_ci

collation - 如何使用 Phinx 更改列的排序规则

sql - 对于这种情况,是否存在单个自联接?

.net - Azure 2.3 SDK 离线

Java/SQL Server 2008 R2 Express 连接问题

sql-server - 如何列出给定 sql 查询的所有列

sql-server-2005 - ASP SQL 错误处理

mysql - 具有不同排序规则的 VARCHAR 列上的 Mysql JOIN 的性能