表名上的SQL Server COLLATION

时间:2010-05-06 13:32:05

标签: sql sql-server collation

对于排序规则设置为“Latin1_General_100_CS_AS”的SQL Server数据库,我想运行如下查询:

SELECT * FROM tableName,只有数据库中的表名称为TableName。

SELECT * FROM TableName工作正常

SELECT * FROM tableName会出错:

  

Msg 208,Level 16,State 1,Line 1   无效的对象名称

如何使查询不区分大小写?

1 个答案:

答案 0 :(得分:0)

我似乎记得在某处读到你无法做到这一点。

系统数据库表始终区分大小写。据我所知,你不能关闭这个功能,这也不受你自己的整理设置的影响 - 系统目录表的处理方式不同。

然而,您可以做的是创建一个同义词:

CREATE SYNONYM tableName FOR dbo.TableName

然后您的选择将再次起作用。当然,为每个可能的大写/小写输入案例创建同义词是不切实际的 - 但这可能是对这对夫妇最严重的问题的“快速修复”....