如何在 SQL Server 2005 中为对象名称(表名称)禁用区分大小写?

BJ *_*tel 5 sql-server-2005

我在 SQL Server 2005 中创建了一个新数据库并从旧数据库执行生成的脚本。

因为我有一张桌子叫 MstCity

当我尝试执行以下表名大写的查询时 MSTCITY

SELECT City FROM MSTCITY WHERE City = 'Junagadh'
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

无效的对象名称“MSTCITY”

当我执行此SELECT语句时,它工作正常

SELECT City FROM MstCity WHERE City = 'Junagadh'
Run Code Online (Sandbox Code Playgroud)

在旧数据库中,这两个SELECT语句都可以正常工作。并且这两个数据库都只在 SQL Server 2005 中。

Rob*_*ley 7

检查数据库上的排序规则。然后考虑(但不是轻率)它是否应该是 CI(不区分大小写)而不是 CS。

还要查看系统数据库。如果您已经构建了一个将数据库迁移到的系统,则可能需要进行系统重建才能使其正常工作。如果您的 tempdb 排序规则与旧框和新框不同,您可能很快就会发现自己出现排序规则错误。

  • +1 喜欢你在 PASS 峰会上对 SQL Server 中的排序规则冲突的“咆哮”:-) 绝对搞笑:-) (2认同)
  • 这是 http://bit.ly/RFCollat​​ion 上的那个。:) (2认同)