sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo escribir procedimientos almacenados en archivos?

Los procedimientos almacenados no se almacenan como archivos, se almacenan como metadatos y están expuestos a nosotros los peones (gracias Michael por el recordatorio sobre sysschobjs ) en las vistas del catálogo sys.objects , sys.procedures , sys.sql_modules , etc. Para un procedimiento almacenado individual, puede consultar la definición directamente usando estas vistas (lo más importante es sys.sql_modules.definition ) o usando OBJECT_DEFINITION() funcionar como Nicholas señaló (aunque su descripción de syscomments no es del todo exacto).

Para extraer todos los procedimientos almacenados en un solo archivo, una opción sería abrir el Explorador de objetos, expandir your server > databases > your database > programmability y resalte los stored procedures nodo. Luego presione F7 (Ver> Detalles del Explorador de objetos ). En el lado derecho, seleccione todos los procedimientos que desee, luego haga clic con el botón derecho en script stored procedure as > create to > file . Esto producirá un solo archivo con todos los procedimientos que ha seleccionado. Si desea un solo archivo para cada procedimiento, puede usar este método seleccionando solo un procedimiento a la vez, pero eso podría ser tedioso. También puede usar este método para escribir todos los procedimientos relacionados con la contabilidad en un archivo, todos los procedimientos relacionados con las finanzas en otro archivo, etc.

Una forma más fácil de generar exactamente un archivo por procedimiento almacenado sería usar Generar Asistente de secuencias de comandos - nuevamente, comenzando desde el Explorador de objetos - haga clic con el botón derecho en su base de datos y elija Tasks > Generate scripts . Elija Select specific database objects y verifique los Stored Procedures de nivel superior caja. Haga clic en Siguiente. Para la salida, elija Save scripts to a specific location , Save to file y Single file per object.

Estos pasos pueden ser ligeramente diferentes según su versión de SSMS.