2010-11-25 4 views
3

이름이 대문자가 아닌 데이터베이스의 모든 테이블 목록을 선택하는 쿼리를 제공 할 수있는 사람은 누구입니까? select 문에서대문자로 이름이없는 모든 테이블 이름을 선택하는 쿼리

+0

사용중인 데이터베이스의 종류는? –

+0

http://stackoverflow.com/questions/153944/is-sql-syntax-case-sensitive – robert

+0

"ThisTable", "THISTABLE"및 "thistable"을 어떻게 구별 할 것입니까? 데이터베이스 테이블 및 필드에서 대소 문자를 구분하지 않는 것이 가장 좋습니다. – cflute

답변

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 
+0

고마워 친구 ... 그것은 workedforme – Srivastava

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

어, 그건 영리 했어. –

+0

날 위해 일하지 않아 !! – Srivastava

+0

@Srivastava - "작동하지 않는 것"보다 약간 자세한 내용을 제공하는 것을 고려해 봤습니까? 그것은 당신에게 부정확 한 결과를주는 것입니까, 오류 메시지를주는 것입니까? (사람들이 당신을 도우 려한다고 말할 수 있습니까?) –

0

테이블 이름은 대소 문자를 구별 할 수 있지만, 그건 당신이 대문자되지 않은 테이블의 이름을 반환 할 수 없습니다 의미하지 않는다 :

SELECT name 
FROM sys.tables 
WHERE (name <> UPPER(name)) 
+0

작동하지 않습니다. 데이터 정렬은 기본적으로 대/소문자를 구분하지 않습니다. – Lucero

+0

이 작동하지 않습니다. – Srivastava

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) 
관련 문제