Sử dụng sys.sql_modules
bởi vì definition
là nvarchar(max)
vì nó sẽ không cắt ngắn đoạn mã dài.
Trong INFORMATION_SCHEMA.ROUTINES
ROUTINE_DEFINITION
cột chỉ là nvarchar(4000)
vì vậy nếu bạn thử xem văn bản của một thủ tục dài và bạn sẽ thấy rằng nó đã bị cắt bớt.
Sử dụng điều này để tìm kiếm văn bản trong bất kỳ thủ tục, dạng xem, chức năng nà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
sử dụng cái này để xem văn bản của một thủ tục, dạng xem, hàm đã cho:
select * from sys.sql_modules where object_id=object_id('YourProcedure')