Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Onde o SQL Server armazena o código do procedimento armazenado?


Use sys.sql_modules porque definition é nvarchar(max) porque não truncará código longo.

Em INFORMATION_SCHEMA.ROUTINES a ROUTINE_DEFINITION coluna é apenas nvarchar(4000) então se você tentar visualizar o texto de um procedimento longo e verá que ele está truncado.

Use isso para pesquisar texto em qualquer procedimento, visualização, função:
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 isso para ver o texto de um determinado procedimento, visão, função:
select * from sys.sql_modules where object_id=object_id('YourProcedure')