• 프로시저(sp)에서 사용하는 테이블 목록 , 특정 테이블을 참조하는 프로시저 목록

    2020. 8. 4.

    by. Yo.

    테이블의 속성이 변경되었을 때

    혹은 컬럼 속성이 변경되었을 때 

    아니면 테이블의 용도나 정체(?)를 알 수 없을 때

    관련된 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

    댓글