특정 테이블을 사용하는 STORED PROCEDURE 찾기

티스토리 메뉴 펼치기 댓글수2

배움/MS-SQL

특정 테이블을 사용하는 STORED PROCEDURE 찾기

기차나
댓글수2
테이블 설계를 변경해야 하는 경우
해당 테이블을 사용하는 STORED PROCEDURE, STORED FUNCTION 등을 찾아야 하는 데요.
그래야 변경을 할 것인지 아닌지를 결정할 수 있고, 변경할 수 있는 범위를 가늠할 수도 있고요.
이 또한 문서화가 제대로 되어있지 않을 수 밖에 없으니..

특정 테이블을 사용하는 PROCEDURE를 찾는 쿼리입니다.

SELECT 
    DISTINCT O.NAME
FROM 
    SYSDEPENDS AS D
INNER JOIN 
    SYSOBJECTS AS O 
ON 
    D.ID = O.ID
WHERE 
    O.XTYPE = 'P' 
	AND D.DEPID = 
	    (
    	    SELECT 
    	        ID 
    	    FROM 
    	        SYSOBJECTS 
    	    WHERE 
    	        NAME = '테이블명'
	    )

한계는 존재합니다. 테이블이 정의된 CATEGORY와 동일한 CATEGORY 내에 존재하는 STORED PROCEDURE만 찾을 수 있다는 것인데요.
물론, 다른 CATEGORY에 정의된 테이블을 사용하는 게 옳은 지에 대해서는 저는 아직 잘 모르겠습니다.
다만 가급적 안하는 게 좋겠죠. 하지만 그런 경우 자체는 존재하니.ㅠㅠ
차라리 다른 CATEGORY에 존재하는 TABLE의 내용을 사용하고 싶은 경우에는 TABLE 자체를 자신의 CATEGORY로 자동으로 MIRRORING해주는 게 맞을 듯 합니다. 실시간으로 해주고 싶다면, TRIGGER도 있고, 사용이 잘 안되는 시간대에 이벤트로 변경된 것만 긁어와도 되고, 방법이야 많으니까요. ㅎㅎ
맨위로

https://jwoojeong.tistory.com/entry/%ED%8A%B9%EC%A0%95-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-STORED-PROCEDURE-%EC%B0%BE%EA%B8%B0

신고하기