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

¿Dónde almacena SQL Server el código del procedimiento almacenado?

Usa sys.sql_modules porque definition es nvarchar(max) porque no truncará el código largo.

En INFORMATION_SCHEMA.ROUTINES la ROUTINE_DEFINITION la columna es solo nvarchar(4000) por lo tanto, si intenta ver el texto de un procedimiento largo, verá que está truncado.

Use esto para buscar texto en cualquier procedimiento, vista, función:

SELECT DISTINCT
    o.name AS Object_Name,o.type_desc
    FROM sys.sql_modules        m 
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.definition Like '%'[email protected]+'%'
    ORDER BY o.type_desc,o.name 

use esto para ver el texto de un procedimiento dado, vista, función:

select * from sys.sql_modules where object_id=object_id('YourProcedure')