2009-08-11 15 views
1

In meinem SQL Server Management Studio wurde plötzlich die Groß- und Kleinschreibung beachtet. Die Datenbank und Server eingestellt sind beide unempfindlich FallGroß-/Kleinschreibung in SSMS

SQL_Latin1_General_CP1_CI_AS

ich Abfragen ausführen wie

Select * From mytable 

und ich "ungültig Objektnamen"

aber wenn ich laufe

select * from MyTable 

ich bekomme Daten !!

Ich erstellte eine neue Datenbank und erstellte eine Dummy-Tabelle und führte dort erfolgreich Groß- und Kleinschreibung aus.

Irgendwelche Ideen, was ich hier sehen kann?

EDITED

Hier ist die Ausgabe der statments aus dem durch @ Sam gegebene Antwort. Es ist sehr seltsam, dass der Server und die Datenbank beide Groß- und Kleinschreibung nicht berücksichtigen, aber die einzelnen Spalten unterscheiden zwischen Groß- und Kleinschreibung. Die CREATE TABLE-Anweisungen nicht Kollatierungsinformationen enthalten - nur Sortierungs Frage: Warum ist die Abfrage der Tabellennamen Fall mit empfindlicher, wenn die Datenbank CI ist

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] Nach mehreren Versuchen zu versuchen, verschiedene Kombinationen plötzlich ist die Datenbank nicht mehr case-sensitiv. Zauber!?

+0

Nicht die Art von Magie, die Sie gerne sehen, ja? Hat noch jemand Zugriff auf die DB? – Sam

+0

Direkt dran! Ich mag definitiv keine unerklärlichen Geheimnisse in Software. Die fragliche Datenbank befindet sich auf meinem Computer und ich bin der einzige Administrator auf der Arbeitsstation außer meinen Domänenadministratoren. –

Antwort

3

Sehr seltsam. Vielleicht könnten diese Befehle helfen Ihnen, das Problem aufzuspüren:

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') 

Mein erster Gedanke ist, dass man ein SET option hatte eingeschaltet - obwohl ich nie von einem für CS gehört hatte.

Vielleicht versuchen Sie eine Abfrage durch SQLCMD und sehen was passiert.

+0

Gute Antwort. Eine geringfügige Niggle though: um es klar zu machen, sollte es zwei db Kollationsprüfungen eins für "MYDB" und eins für "Modell" geben (wo die Standardsortierung für neue Datenbanken herkommt). – gbn