Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Où SQL Server stocke-t-il le code de la procédure stockée ?

Utilisez sys.sql_modules parce que definition est nvarchar(max) car il ne tronquera pas le code long.

Dans INFORMATION_SCHEMA.ROUTINES la ROUTINE_DEFINITION la colonne est uniquement nvarchar(4000) donc si vous essayez de visualiser le texte d'une longue procédure et vous verrez qu'il est tronqué.

Utilisez ceci pour rechercher du texte dans n'importe quelle procédure, vue, fonction :

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 

utilisez ceci pour afficher le texte d'une procédure, vue, fonction donnée :

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