복붙노트

[SQL] 표에서 저장 프로 시저의 목록

SQL

표에서 저장 프로 시저의 목록

나는 테이블과 저장 프로 시저의 100 개의와 거대한 데이터베이스를 가지고있다. 나는 주어진 테이블에 삽입 또는 업데이트 작업을하고 저장 프로 시저의 목록을 얻을 수있는 방법, SQL Server 2005를 사용.

해결법

  1. ==============================

    1.

    select
      so.name,
      sc.text
    from
      sysobjects so inner join syscomments sc on so.id = sc.id
    where
      sc.text like '%INSERT INTO xyz%'
      or sc.text like '%UPDATE xyz%'
    

    이것은 (당신은 분명 소송에 쿼리를 조정할 수) 특정 테이블에 대해 당신이 그들에 INSERT 또는 UPDATE 모든 저장 프로 시저 내용의 목록을 제공합니다. 당신이 결과를 통해 수동 체질의 조금을 수행해야 할 수 있도록 또한 더 이상 절차는 반환 된 레코드에 여러 행에 걸쳐 파손됩니다.

    편집 : 불통 쿼리가 아니라 SP 이름을 반환합니다. 또한, 위의 쿼리뿐만 아니라 SP에 어떠한 UDF를 반환합니다 유의하십시오.

  2. ==============================

    2.sys.sql_dependencies는 테이블과 sproc에 쿼리에 포함 열을 포함하여 종속성을 가진 개체의 목록이 있습니다. 의존성을 유도 할 수있는 쿼리의 예를 들어이 게시물을 참조하십시오. 코드는 저장 프로 시저에 의해 테이블 ​​/ 열 종속성의 목록을 얻을 것이다 아래 니펫을

    sys.sql_dependencies는 테이블과 sproc에 쿼리에 포함 열을 포함하여 종속성을 가진 개체의 목록이 있습니다. 의존성을 유도 할 수있는 쿼리의 예를 들어이 게시물을 참조하십시오. 코드는 저장 프로 시저에 의해 테이블 ​​/ 열 종속성의 목록을 얻을 것이다 아래 니펫을

    select sp.name       as sproc_name
          ,t.name        as table_name
          ,c.name        as column_name
     from sys.sql_dependencies d
     join sys.objects t
       on t.object_id = d.referenced_major_id
     join sys.objects sp
       on sp.object_id = d.object_id
     join sys.columns c
       on c.object_id = t.object_id
      and c.column_id = d.referenced_minor_id
    where sp.type = 'P'
    
  3. ==============================

    3.사용 sys.dm_sql_referencing_entities

    사용 sys.dm_sql_referencing_entities

    sp_depends는 폐기되어 있습니다.

    MSDN 참조

  4. ==============================

    4.텍스트 파일로 저장 프로 시저의 모든 수출을 시도하고 간단한 검색을 사용할 수 있습니다.

    텍스트 파일로 저장 프로 시저의 모든 수출을 시도하고 간단한 검색을 사용할 수 있습니다.

    더 진보 된 기술은 항목 FROM 및 INSERT에서 모든 SELECT를 찾기 위해 정규 표현식 검색을 사용하는 것입니다.

  5. ==============================

    5.이것은 작동하는 것 같다 :

    이것은 작동하는 것 같다 :

    고르다 [PROC]로 so.name, [표]로 so2.name, sd.is_updated sysobjects의에서 그렇게 이너 so.id = sd.object_id에 sys.sql_dependencies의 SD 합류 이너 sd.referenced_major_id = so2.id 상을 sysobjects SO2 합류 여기서 so.xtype = 'P'- 절차 및 is_updated = 1 - PROC 업데이트 테이블, 또는 적어도, 나는 무엇을이 방법을 생각한다

  6. ==============================

    6.당신이 Vyaskn의 웹 사이트에서 sp_search_code를 다운로드하는 경우 당신이 당신의 데이터베이스 객체 내의 텍스트를 찾을 수 있습니다.

    당신이 Vyaskn의 웹 사이트에서 sp_search_code를 다운로드하는 경우 당신이 당신의 데이터베이스 객체 내의 텍스트를 찾을 수 있습니다.

    http://vyaskn.tripod.com/sql_server_search_stored_procedure_code.htm

  7. ==============================

    7.

    SELECT Distinct SO.Name
    FROM sysobjects SO (NOLOCK)
    INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
    AND SO.Type = 'P'
    AND (SC.Text LIKE '%UPDATE%' OR SC.Text LIKE '%INSERT%')
    ORDER BY SO.Name
    

    이 링크는 SP 검색을위한 자원으로 사용되었다.

  8. from https://stackoverflow.com/questions/119679/list-of-stored-procedure-from-table by cc-by-sa and MIT license