5

Sto lavorando a un mucchio di stored procedure molto complicate sui database SQLSERVER 2012 Express utilizzando lo studio di gestione SQLSEVER 2012.SQL Server view Stored Procedure relazioni complete

Ad esempio ho una stored procedure SP1 chiamare un'altra stored procedure SP2 e SP3 SP2 chiamate, chiamate SP3 SP4 ...

Quello che mi piacerebbe vedere è uno schema che mi può offrire le piene relazioni tra questi stored procedure e tutte le tabelle utilizzate in queste stored procedure.

Ho provato gli strumenti di visualizzazione delle dipendenze forniti dallo studio di gestione di SQL Server, ma a volte mancano le stored procedure dei discendenti quando faccio clic su "Visualizza dipendenze" di una stored procedure selezionata. Inoltre, non può mostrare un'immagine completa delle relazioni tra queste stored procedure.

C'è qualche strumento che può aiutarmi con questo? O qualche suggerimento su come comprendere complicate procedure memorizzate sulle relazioni?

+2

i processi di archiviazione memorizzati come questo è un incubo da documentare. Non c'è davvero un grande strumento per questo perché implica la ricorsione. Devi vedere le dipendenze di ogni oggetto dipendente. –

+1

Hai provato a Redgate? – mhan0125

+1

@SeanLange Ma vedere uno ad uno richiede troppo tempo e io sono nuovo di questo progetto, qualche esperienza su come accelerare le cose? – lengsiqi

risposta

1

Ho trovato la seguente query abbastanza utile, spero che possa essere d'aiuto.

select  
     distinct 
     ObjJectType= 
     case Obj.xType 
     When 'V' then 
      'VIEW' 
     When 'P' then 
      'PROC' 
     When 'D' then 
      'INDEX' 
     When 'TF' then 
      'TABLE FUNCTION' 
     When 'FN' then 
      'FUNCTION' 
     When 'U' then 
      'TABLE' 
     When 'F' then 
      'FK CONSTRAINT' 
     When 'PK' then 
      'PK CONSTRAINT' 
     When 'TR' then 
      'TRIGGER' 
     When 'S' then 
      'SYSTEM OBJECT' 
     end , 
     Obj.name 
from 
     syscomments Com inner join sysobjects Obj 
    on Com.id = Obj.id 
where 
     Com.text like '%sp_name%' 
order by Obj.name 
1

È possibile creare una query ricorsiva intorno a sys.objects uniti su sys.sql_modules (il campo di definizione contiene il codice sproc) e creare un albero delle dipendenze.

+1

Ma sarà difficile decidere se una sp è all'interno di un commento o se viene realmente chiamata se interrogando direttamente il codice sp. – lengsiqi

+0

@lengsiqi Hai ragione. la gestione dei commenti complicherà il codice. – Ilan

+0

Sono d'accordo che questo sarebbe il modo di procedere senza alcun tipo di strumento di terze parti. –

Problemi correlati