首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSMS中的大小写敏感性

SSMS中的大小写敏感性
EN

Stack Overflow用户
提问于 2009-08-11 19:49:28
回答 1查看 4.5K关注 0票数 1

我的突然对我大小写敏感了。数据库和服务器都设置为不区分大小写。

SQL_Latin1_General_CP1_CI_AS

我运行的查询如下

代码语言:javascript
复制
Select * From mytable 

我得到了“无效的对象名”

但如果我跑了

代码语言:javascript
复制
select * from MyTable

我拿到数据了!!

我创建了一个新的数据库,创建了一个虚拟表,并在那里成功地运行了不区分大小写的查询。

有什么我能查到的吗?

编辑的

这是@Sam给出的语句的输出。非常奇怪的是,服务器和数据库都定义了不区分大小写,但是单独的列是区分大小写的。Create语句不包含排序规则信息,只包含排序规则问题:当数据库为CI时,为什么使用表名的查询区分大小写?

代码语言:javascript
复制
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。魔法!?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-11 20:51:35

很奇怪。也许这些命令可以帮助您找到问题所在:

代码语言:javascript
复制
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运行一个查询,看看会发生什么。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1262513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档