Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come eseguire lo script di stored procedure su file?

Le stored procedure non vengono archiviate come file, vengono archiviate come metadati ed esposte a noi peoni (grazie Michael per il promemoria su sysschobjs ) nelle viste del catalogo sys.objects , sys.procedures , sys.sql_modules , ecc. Per una singola stored procedure, puoi interrogare la definizione direttamente utilizzando queste viste (soprattutto sys.sql_modules.definition ) o utilizzando OBJECT_DEFINITION() funzione come Nicholas ha sottolineato (sebbene la sua descrizione di syscomments non è del tutto accurato).

Per estrarre tutte le procedure memorizzate in un unico file, un'opzione potrebbe essere quella di aprire Esplora oggetti, espandere your server > databases > your database > programmability ed evidenziare le stored procedures nodo. Quindi premi F7 (Visualizza> Dettagli di Esplora oggetti ). Sul lato destro, seleziona tutte le procedure desiderate, quindi fai clic con il pulsante destro del mouse su script stored procedure as > create to > file . Questo produrrà un unico file con tutte le procedure che hai selezionato. Se si desidera un unico file per ciascuna procedura, è possibile utilizzare questo metodo selezionando solo una procedura alla volta, ma potrebbe essere noioso. Puoi anche utilizzare questo metodo per scrivere tutte le procedure relative alla contabilità in un file, tutte le procedure relative alla finanza in un altro file, ecc.

Un modo più semplice per generare esattamente un file per stored procedure sarebbe utilizzare Genera Procedura guidata per gli script - di nuovo, partendo da Esplora oggetti - fai clic con il pulsante destro del mouse sul database e scegli Tasks > Generate scripts . Scegli Select specific database objects e controlla le Stored Procedures di primo livello scatola. Fare clic su Avanti. Per l'output scegli Save scripts to a specific location , Save to file e Single file per object.

Questi passaggi potrebbero variare leggermente a seconda della versione di SSMS in uso.