>source

Column1이있는D1데이터베이스에View1보기가 있으며,열 2,열 3

보기View1은 저장 프로 시저PROC1내의 다른 데이터베이스D2에서 사용됩니다
저장 프로 시저PROC1에서는Column2만 사용되지만 다른 열은 사용되지 않습니다

보기View1은 저장 프로 시저PROC2의 다른 데이터베이스D3에서 사용됩니다
Column1Column2는 저장 프로 시저PROC2에서 사용되지만 다른 열은 사용되지 않습니다

저장 프로 시저PROC1,PROC2에서View1의 어떤 열이 소비되는지 식별하는 방법 쿼리를 사용하여.

여러 데이터베이스에서 소비되는 거의 100 개의 뷰가 있으며 각 데이터베이스에서 저장 프로 시저가 사용하는 모든 열을 알아야합니다.


  • 답변 # 1

    다음을 실행할 수 있습니다 :

    exec sp_depends 'view of view'

    이것은 뷰를 참조하는 모든 객체 (프로 시저 포함)를 반환합니다. 프로 시저에서 사용되는 열을 결정하기 위해 명명 된 proc 자체를 검사해야합니다.

  • 답변 # 2

    DB 내에서 저장 프로 시저에서 column1이 사용되는 위치를 식별 할 수 있습니다.

    DECLARE @Search VARCHAR(255)
    SET @Search = 'Column1'
    SELECT DISTINCT
        o.name AS Object_Name, o.type_desc
    FROM 
        sys.sql_modules m 
    INNER JOIN 
        sys.objects o ON m.object_id = o.object_id
    WHERE 
        m.definition LIKE '%' + @Search + '%' 
        AND type_desc = 'SQL_STORED_PROCEDURE'
    ORDER BY 
        2, 1
    
    

    다른 DB를보고 있다면 [differentDBname].sys.sql_modules 를 포함 시키십시오

관련 자료

  • 이전 php - 모든 API 요청 및 응답 기록 + Slim 프레임 워크
  • 다음 c# - 마우스 오른쪽 버튼을 통해 트리거 될 때 ListView에서 DoubleClicked 이벤트를 억제 할 수 있습니까?