Użyj sys.sql_modules
ponieważ definition
to nvarchar(max)
ponieważ nie skróci długiego kodu.
W INFORMATION_SCHEMA.ROUTINES
ROUTINE_DEFINITION
kolumna to tylko nvarchar(4000)
więc jeśli spróbujesz wyświetlić tekst długiej procedury, a zobaczysz, że jest on skrócony.
Użyj tego, aby wyszukać tekst w dowolnej procedurze, widoku, funkcji:
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
użyj tego, aby wyświetlić tekst danej procedury, widoku, funkcji:
select * from sys.sql_modules where object_id=object_id('YourProcedure')