프로시저(sp)에서 사용하는 테이블 목록 , 특정 테이블을 참조하는 프로시저 목록
DataBase/MS-SQL2020. 8. 4. 18:05
반응형
테이블의 속성이 변경되었을 때
혹은 컬럼 속성이 변경되었을 때
아니면 테이블의 용도나 정체(?)를 알 수 없을 때
관련된 sp를 확인하기 위해서 개인적으로 자주 사용하는 SQL 입니다.
특정 프로시저에서 사용하는 테이블 목록을 조회하는 SQL 문입니다.
-- 프로시저에서 사용하는 테이블 목록
;WITH stored_procedures AS
(
SELECT oo.name AS table_name, o.name,
ROW_NUMBER() OVER(partition by o.name,oo.name ORDER BY o.name,oo.name) AS row
FROM sysdepends d
INNER JOIN sysobjects o ON o.id=d.id
INNER JOIN sysobjects oo ON oo.id=d.depid
WHERE o.xtype = 'P' AND o.name LIKE '%프로시저명%'
)
SELECT name,Table_name FROM stored_procedures
WHERE row = 1
반대로 특정 테이블을 참조하는 프로시저 목록을 조회하는 SQL문 입니다.
-- 특정 테이블을 참조하는 프로시저 목록
;WITH stored_procedures AS
(
SELECT oo.name AS table_name, o.name,
ROW_NUMBER() OVER(partition by o.name,oo.name ORDER BY o.name,oo.name) AS row
FROM sysdepends d
INNER JOIN sysobjects o ON o.id=d.id
INNER JOIN sysobjects oo ON oo.id=d.depid
WHERE o.xtype = 'P' AND oo.name = '테이블명'
)
SELECT name,Table_name FROM stored_procedures
WHERE row = 1
댓글()