任何人都可以向我提供一个查询来选择db中没有大写名称的所有表的列表吗?
答案 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
答案 1 :(得分: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
答案 2 :(得分:0)
select语句中的表名可能不区分大小写,但这并不意味着您不能返回非大写表的名称:
SELECT name
FROM sys.tables
WHERE (name <> UPPER(name))
答案 3 :(得分:0)
SELECT name
FROM sys.tables
WHERE name <> UPPER(name) COLLATE Latin1_General_BIN
答案 4 :(得分:0)
SELECT name
FROM sys.tables
WHERE CAST(name as varbinary) <> CAST(UPPER(name) as varbinary)