默认情况下,SQL Server 里面是不区分大小写的:
E:\>sqlcmd -S "localhost\SQLEXPRESS"
1> use test
2> go
已将数据库上下文更改为 'Test'。
-- 建立一个 tab 的测试表, 表名称为全部小写
1> CREATE TABLE [tab] ( id int )
2> go
1> select * from tab
2> go
id
-----------
(0 行受影响)
1> select * from Tab
2> go
id
-----------
(0 行受影响)
上面可以看出,默认情况下,
select * from tab 与 select * from Tab 是一样的。
因为不区分大小写
下面设置 test 数据库,让其区分大小写
alter database test COLLATE Chinese_PRC_CS_AS
1> alter database test COLLATE Chinese_PRC_CS_AS
2> go
1> select * from tab
2> go
id
-----------
(0 行受影响)
1> select * from Tab
2> go
消息 208,级别 16,状态 1,服务器 WANGZHIQING\SQLEXPRESS,第 1 行
对象名 'Tab' 无效。
设置数据库区分大小写以后,可以看到
select * from Tab 的时候, SQL Server 无法识别 "Tab" 这个表了
因为区分大小写了。
下面恢复 test 数据库的设置,让其不区分大小写
alter database test COLLATE Chinese_PRC_CI_AS
1> select * from tab
2> go
id
-----------
(0 行受影响)
1> select * from Tab
2> go
id
-----------
(0 行受影响)
恩,一切又恢复正常了。