TrungBravo
05-19-2010, 04:16 PM
Nếu ta cần tìm thủ tục lưu có chứa chuỗi bất kỳ (ví dụ tìm 'FOR XML'). Ta có thể làm một trong các cách sau
DECLARE @_StrTmp VARCHAR(64)
SET @_StrTmp = '%for xml%'
-- cách 1
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE @_StrTmp
-- cách 2
SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE Definition LIKE @_StrTmp
AND OBJECTPROPERTY(object_id, 'IsProcedure') = 1
-- cách 3
SELECT ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE @_StrTmp
AND ROUTINE_TYPE = 'PROCEDURE'
DECLARE @_StrTmp VARCHAR(64)
SET @_StrTmp = '%for xml%'
-- cách 1
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE @_StrTmp
-- cách 2
SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE Definition LIKE @_StrTmp
AND OBJECTPROPERTY(object_id, 'IsProcedure') = 1
-- cách 3
SELECT ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE @_StrTmp
AND ROUTINE_TYPE = 'PROCEDURE'