2009-08-11 8 views
1

SQL Server Management Studio가 갑자기 나를 대소 문자를 구분했습니다. 데이터베이스와 서버 모두대소 문자 구별 : SSMS

SQL_Latin1_General_CP1_CI_AS 데이터

내가

Select * From mytable 

같은 쿼리를 실행 대소 문자를 구분하도록 설정 나는 "잘못된 개체 이름"

을 얻을하지만 난

select * from MyTable 
을 실행하면된다

나는 데이터를 얻습니다!

새 데이터베이스를 만들고 더미 테이블을 만들고 거기에서 대/소문자를 구분하지 않는 쿼리를 성공적으로 실행했습니다.

여기에서 내가 볼 수있는 아이디어가 있습니까? 여기

편집

@Sam 주어진 해답 문에서도로부터의 출력이다. 서버와 데이터베이스 모두 대소 문자를 구분하지 않지만 개별 열은 대/소문자를 구분합니다. 만들기 표 문은 정렬 정보를 포함하지 않습니다 - 단지 정렬을 질문 : 데이터베이스가 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 

[편집] 서로 다른 조합을 시도 여러 시도 후 때 민감한 테이블 이름 케이스를 사용하여 쿼리 왜 갑자기 데이터베이스가 더 이상 CaseSensitive가 아닙니다. 마법!?

+0

보고 싶은 마술 유형이 아닌가요? 다른 누구도 DB에 액세스 할 수 있습니까? – Sam

+0

바로 켜기! 나는 소프트웨어에서 설명되지 않은 신비를 분명히 좋아하지 않는다. 문제의 데이터베이스는 내 컴퓨터에 있으며 내 도메인 관리자가 아닌 유일한 워크 스테이션 관리자입니다. –

답변

3

매우 이상합니다. 아마도 이러한 명령은 당신이 아래로 문제를 추적 할 수 있습니다 :

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이 켜져 있었다이다 - 나는 CS 하나 들어 본 적이 있지만.

아마 SQLCMD을 통해 쿼리를 실행하고 어떤 결과가 나타나는지보십시오.

+0

좋은 답변입니다. 사소한 문제 : 분명히 말하자면, "MYDB"와 "모델"을위한 2 db collation 체크가 있어야합니다 (기본 데이터베이스가 새 데이터베이스에서 오는 곳입니다). – gbn

관련 문제