我的突然对我大小写敏感了。数据库和服务器都设置为不区分大小写。
SQL_Latin1_General_CP1_CI_AS
我运行的查询如下
Select * From mytable 我得到了“无效的对象名”
但如果我跑了
select * from MyTable我拿到数据了!!
我创建了一个新的数据库,创建了一个虚拟表,并在那里成功地运行了不区分大小写的查询。
有什么我能查到的吗?
编辑的
这是@Sam给出的语句的输出。非常奇怪的是,服务器和数据库都定义了不区分大小写,但是单独的列是区分大小写的。Create语句不包含排序规则信息,只包含排序规则问题:当数据库为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。魔法!?
发布于 2009-08-11 20:51:35
很奇怪。也许这些命令可以帮助您找到问题所在:
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')我的第一个想法是,您有一个设置选项打开-虽然我从来没有听说过一个为CS。
也许试着通过SQLCMD运行一个查询,看看会发生什么。
https://stackoverflow.com/questions/1262513
复制相似问题