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

¿Recuperar mediante programación el origen del procedimiento almacenado de SQL Server que es idéntico al origen devuelto por la interfaz gráfica de usuario de SQL Server Management Studio?

EXEC sp_helptext 'your procedure name';

Esto evita el problema con el enfoque INFORMACION_ESQUEMA en el que el procedimiento almacenado se corta si es demasiado largo.

Actualización:David escribe que esto no es idéntico a su sproc... ¿quizás porque devuelve las líneas como 'registros' para conservar el formato? Si desea ver los resultados en un formato más "natural", puede usar Ctrl-T primero (salir como texto) y debería imprimirlo exactamente como lo ingresó. Si está haciendo esto en código, es trivial hacer un foreach para juntar sus resultados exactamente de la misma manera.

Actualización 2:Esto proporcionará a la fuente un "PROCEDIMIENTO DE CREACIÓN" en lugar de un "PROCEDIMIENTO DE ALTERACIÓN", pero no conozco ninguna forma de hacer que use "ALTERAR" en su lugar. Sin embargo, es algo trivial, ¿no?

Actualización 3:consulte los comentarios para obtener más información sobre cómo mantener su SQL DDL (estructura de base de datos) en un sistema de control de código fuente. Esa es realmente la clave de esta pregunta.