2010-11-25 42 views
3

任何人都可以提供一個查詢來選擇數據庫中沒有大寫字母名稱的所有表的列表嗎?在SELECT語句查詢選擇所有沒有大寫字母名稱的表名

+0

您正在使用什麼樣的數據庫? – 2010-11-25 11:44:18

+0

請參閱http://stackoverflow.com/questions/153944/is-sql-syntax-case-sensitive – robert 2010-11-25 11:45:31

+0

你如何區分「ThisTable」,「THISTABLE」和「thistable」。最好在數據庫表和字段中不要區分大小寫。 – cflute 2010-11-25 11:53:27

回答

2

@ GBN的答案是糾正任何最新版本的SQL Server。

爲2000:

SELECT * FROM 
sysobjects 
WHERE 
    UPPER(name) COLLATE Latin1_General_BIN <> name COLLATE Latin1_General_BIN 
AND OBJECTPROPERTY(ID,N'IsTable')=1 and OBJECTPROPERTY(ID,N'IsMSShipped')=0 
5
SELECT * FROM 
sys.tables -- or local equivalent. This is for SQL Server 
WHERE 
    UPPER(name) COLLATE Latin1_General_BIN <> name COLLATE Latin1_General_BIN 
+0

呃,那很聰明:) – 2010-11-25 11:52:52

0

表名稱可能是區分大小寫的,但是,這並不意味着你不能回表的名稱未大寫:

SELECT name 
FROM sys.tables 
WHERE (name <> UPPER(name)) 
0
SELECT name 
FROM sys.tables 
WHERE name <> UPPER(name) COLLATE Latin1_General_BIN 
0
SELECT name 
FROM sys.tables 
WHERE CAST(name as varbinary) <> CAST(UPPER(name) as varbinary) 
相關問題