2009-08-11 19 views
1

SQL Server Management Studioが突然私の大文字と小文字を区別しました。データベースとサーバの両方の影響を受けないSSMSの大文字と小文字の区別

順序SQL_Latin1_General_CP1_CI_AS

私は

Select * From mytable 

ようなクエリを実行し、私は

select * from MyTable 
を実行する場合、私は、「無効なオブジェクト名」

を取得しますがをケースにセットされています

私はデータを取得します!

私は新しいデータベースを作成し、ダミーテーブルを作成し、そこで大文字と小文字を区別しないクエリを実行しました。

私はここに何を見ることができますか?

EDITED

ここ@Samによって与えられた答えからたstatmentsの出力があります。サーバーとデータベースの両方で大文字小文字の区別が定義されているのは非常に奇妙ですが、個々の列では大文字と小文字が区別されます。表の作成ステートメントは、照合情報は含まれません - だけ照合を 質問:データベースは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ではありません。マジック!?

+0

あなたが見るのが好きな魔法のタイプではありませんか?他の誰かがDBにアクセスできますか? – Sam

+0

右上に!私は間違いなく、ソフトウェアで説明できない謎を好きではありません。問題のデータベースは私のマシン上にあり、私は私のドメイン管理者以外のワークステーションの唯一の管理者です。 –

答えて

3

非常に奇妙です。おそらく、これらのコマンドは、あなたがダウンして問題を追跡できます - 私はCSのための1つのことを聞いたことがありませんでしたが、

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 optionをオンにしていたということです。

おそらくSQLCMDでクエリを実行して、何が起こるかを確認してください。

+0

良い答え。ただし、「MYDB」と「モデル」の2つの照合チェック(新しいデータベースのデフォルトの照合が行われる場所)が必要です。 – gbn

関連する問題