Чувствительность к регистру в SSMS - PullRequest
1 голос
/ 11 августа 2009

Моя SQL Server Management Studio неожиданно стала чувствительной к регистру. База данных и сервер настроены без учета регистра

SQL_Latin1_General_CP1_CI_AS

Я запускаю запросы вроде

Select * From mytable 

и я получаю "недопустимое имя объекта"

но если я бегу

select * from MyTable

я получаю данные !!

Я создал новую базу данных, создал фиктивную таблицу и успешно выполнил там запросы без учета регистра.

Есть идеи, что я могу посмотреть здесь?

EDITED

Вот вывод статистики из ответа, данного @Sam. Очень странно, что и Сервер, и База данных имеют определенную нечувствительность к регистру, но отдельные столбцы чувствительны к регистру. Операторы Create Table не содержат информацию о сопоставлении - только сопоставление Вопрос: Почему запрос, использующий имя таблицы, чувствителен к регистру, когда для базы данных используется CI

Server Level Collation
-----------------------------
SQL_Latin1_General_CP1_CI_AS

Database Level Collation
------------------------------
SQL_Latin1_General_CP1_CI_AI

Name          Owner  Type       Created_datetime
------------- ------ ---------- -----------------------
ProfitCenter  dbo    user table 2009-08-06 13:02:56.180



Column_name                  Type        Length  Collation
---------------------------- ----------- ------- -------------------------------
ProfitCenterID               int         4       NULL
HierarchyNodeID              int         4       NULL
ProfitCenterStatusID         int         4       NULL
BICProfitCenterNumber        varchar     10      SQL_Latin1_General_CP1_CS_AS
ProfitCenterName             varchar     255     SQL_Latin1_General_CP1_CS_AS
BICDistrictNumber            char        10      SQL_Latin1_General_CP1_CS_AS
BICClientNumber              varchar     10      SQL_Latin1_General_CP1_CS_AS
ManagerEmail                 varchar     255     SQL_Latin1_General_CP1_CS_AS
ManagerFirstName             varchar     255     SQL_Latin1_General_CP1_CS_AS
ManagerLastName              varchar     255     SQL_Latin1_General_CP1_CS_AS
PCOpenDate                   datetime    8       NULL
PCCloseDate                  datetime    8       NULL
LastDayOperation             datetime    8       NULL
ContractType                 char        10      SQL_Latin1_General_CP1_CS_AS
ContractTypeDesc             varchar     50      SQL_Latin1_General_CP1_CS_AS
CBSPCTypeCode                char        3       SQL_Latin1_General_CP1_CS_AS
CBSPCTypeDesc                varchar     50      SQL_Latin1_General_CP1_CS_AS
SBCSPCFlag                   char        1       SQL_Latin1_General_CP1_CS_AS
SBCSPCGroupCode              char        3       SQL_Latin1_General_CP1_CS_AS
SBCSPCRate                   decimal     9       NULL
SBCSPCComponent              varchar     10      SQL_Latin1_General_CP1_CS_AS
SBCSPCAccount                varchar     10      SQL_Latin1_General_CP1_CS_AS
PaymentTerms                 varchar     25      SQL_Latin1_General_CP1_CS_AS
RiskRate                     varchar     25      SQL_Latin1_General_CP1_CS_AS
RiskRateCapFlag              varchar     3       SQL_Latin1_General_CP1_CS_AS
RiskCapRate                  numeric     9       NULL
BICAddedDateTime             datetime    8       NULL
BICUpdatedDateTime           datetime    8       NULL


Identity        Seed  Increment  Not For Replication
--------------- ----- ---------- -------------------
ProfitCenterID  1     1          1


RowGuidCol
------------------------------
No rowguidcol column defined.


Data_located_on_filegroup
--------------------------
PRIMARY


index_name                                 index_description                        index_keys
------------------------------------------ ---------------------------------------- ----------------------
ProfitCenter_PK                            clustered, unique located on PRIMARY     ProfitCenterID
ProfitCenter_Unique_BICProfitCenterNumber  nonclustered, unique located on PRIMARY  BICProfitCenterNumber


No constraints are defined on object 'dbo.ProfitCenter', or you do not have permissions.

No foreign keys reference table 'dbo.ProfitCenter', or you do not have permissions on referencing tables.
No views with schema binding reference table 'dbo.ProfitCenter'.

Server default collation
----------------------------------------------------------------
Latin1-General, case-insensitive, accent-sensitive, 
kanatype-insensitive, width-insensitive for Unicode Data, 
SQL Server Sort Order 52 on Code Page 1252 for non-Unicode Data

[EDIT] После нескольких попыток попробовать разные комбинации, внезапно, база данных перестает быть CaseSensitive. Магия!

1 Ответ

3 голосов
/ 12 августа 2009

Очень странно. Возможно, эти команды помогут вам отследить проблему:

SELECT SERVERPROPERTY('Collation') AS 'Server Level Collation'

To see your default database collation:

SELECT DATABASEPROPERTYEX('Pubs', 'Collation') AS 'Database Level Collation'

To see column level collations of Customers table:

EXEC sp_help 'dbo.Customers'

To see server level collation settings in SQL Server 2000 as well as the previous versions:

EXEC sp_helpsort

To a listing of all available collations in SQL Server 2000:

SELECT * FROM ::fn_helpcollations()

For further information about specific collations:

SELECT COLLATIONPROPERTY('German_PhoneBook_CI_AS', 'CodePage')

SELECT COLLATIONPROPERTY('French_CI_AS', 'LCID')

SELECT COLLATIONPROPERTY('Latin1_General_CI_AS', 'ComparisonStyle')

Сначала я подумал, что у вас включена опция SET , хотя я никогда не слышал о ней для CS.

Возможно, попробуйте выполнить запрос через SQLCMD и посмотрите, что произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...