2014-04-30 3 views
0
나는 테이블에 열을 모두 포함 어디에 내 데이터베이스에서 찾기 위해 노력하고

에서 관련 열을 찾을 수 있지만, 내가 가지고있는 코드는SQL 서버 (데이터베이스

SELECT 
    t.name AS table_name, 
    SCHEMA_NAME(schema_id) AS schema_name, 
    c.name, d.name 
FROM 
    sys.tables AS t 
INNER JOIN 
    sys.columns c ON t.OBJECT_ID = c.OBJECT_ID 
INNER JOIN 
    sys.columns d ON t.OBJECT_ID = c.OBJECT_ID 
WHERE 
    c.name = 'value1' AND d.name = 'value2' 
ORDER BY 
    schema_name, table_name; 
+1

는'조인입니다 INNER 가입 sys.columns D ON t.OBJECT_ID = c.OBJECT_ID'; 조인의 오른쪽 부분을 주목하십시오. 당신은 무엇에 합류하고 있습니까? – LittleBobbyTables

답변

0

내 접근 방식은 두 번째 테이블을 조인 작동하지 않습니다 c)와 세 번째 테이블 (d)이 있고 내부 조인은 object_id이 두 테이블이 같아야 함을 의미합니다. 여기
유일한 실수는 잘못된 당신의 두 번째 내부 조인 ... ON t.OBJECT_ID = c.OBJECT_ID

SELECT 
    t.name AS table_name, 
    SCHEMA_NAME(schema_id) AS schema_name, 
    c.name, d.name 
FROM 
    sys.tables AS t 
INNER JOIN 
    sys.columns c ON t.OBJECT_ID = c.OBJECT_ID 
INNER JOIN 
    sys.columns d ON c.OBJECT_ID = d.OBJECT_ID 
WHERE 
    c.name = 'value1' AND d.name = 'value2' 
ORDER BY 
    schema_name, table_name; 
관련 문제