다음은 'userid'또는 'user_id'열 이름을 가진 모든 테이블을 반환하는 간단한 sql 쿼리입니다.특정 열을 포함하지 않는 모든 테이블을 반환하는 쿼리
SELECT t.name
FROM sys.tables t
INNER JOIN sys.columns c ON t.object_id = c.object_id
WHERE c.name LIKE 'userid' OR c.name LIKE 'user_id'
ORDER BY name
그러나, 제가 여기서 뭘하고 싶은 것은 '사용자 ID'칼럼 'USER_ID'열을 포함하지 않는 모든 테이블을 얻는 것입니다. 어떻게해야합니까?
P. NOT LIKE을 사용하면 테이블에 다른 다른 열이있는 경우 'userid'또는 'user_id'열이 포함 된 테이블을 다시 가져옵니다.
대단히 감사합니다.
또한 절
SELECT t.name FROM sys.tables t
EXCEPT
SELECT t.name
FROM sys.tables t
INNER JOIN sys.columns c ON t.object_id = c.object_id
WHERE c.name IN ('userid', 'user_id')
ORDER BY t.name
이 두 쿼리를 제외하고는 귀하의 original
쿼리를 사용할 수 있습니다
SELECT
t.name
FROM
sys.tables t
WHERE
NOT EXISTS (SELECT *
FROM sys.columns c
WHERE t.object_id = c.object_id AND c.name IN ('userid', 'user_id'))
ORDER BY
t.name
편집 "더 열 사용자 ID가/USER_ID가 존재하지 않는 경우 테이블을"
정말 감사합니다 그것을 포장 할 수있다. 둘 다 꽤 잘 작동했습니다. 특히 EXCEPT를 잘 사용합니다. – woodykiddy