无效的对象名称错误

时间:2015-02-13 09:04:00

标签: sql-server tsql collation

我有两个选择:

  select * from thr_prsnjob 
  select * from tHR_PrsnJob

第一个工作正常。第二次返回错误:

Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.tHR_PrsnJob'.

数据库归类是:归类= SQL_Croatian_CP1250_CI_AS

如果数据库区分大小写,我应该收到此错误。如果CI它应该工作。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在克罗地亚语中,字母nj一起被有效地视为单个字母lj。这称为digraph

似乎SQL Server也以同样的方式处理这些字母。请考虑以下4个陈述:

CREATE TABLE nj (ID INT)
CREATE TABLE nJ (ID INT)
CREATE TABLE Nj (ID INT)
CREATE TABLE NJ (ID INT)

在这种情况下,当创建第一个表时,第3个和第4个表将发生冲突但第二个表是允许的。

SQL引擎看起来处于字母大小写相同的任何情况,这就是小写n后跟大写J被视为不同名称的原因。