Используйте sys.sql_modules
, потому что definition
равно nvarchar(max)
, потому что оно не усекает длинный код.
В INFORMATION_SCHEMA.ROUTINES
столбец ROUTINE_DEFINITION
имеет значение только nvarchar(4000)
, поэтому, если вы попытаетесь просмотреть текст длинной процедуры, и вы увидите, что она усечена.
Используйте это для поиска текста в любой процедуре, представлении, функции:
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 '%'+@Search+'%'
ORDER BY 2,1
используйте это для просмотра текста данной процедуры, представления, функции:
select * from sys.sql_modules where object_id=object_id('YourProcedure')