如何从information_schema.routines或Sys.sql_modules获取全文格式存储过程(完整代码) 使用脚本: -
select top 1 cast(ROUTINE_DEFINITION as TEXT)
FROM information_schema.routines
where ROUTINE_NAME like '%XXXXXXX%'
和
SELECT *
FROM Sys.sql_modules
WHERE definition LIKE '%XXXXXXXXXXXXXXX%'
答案 0 :(得分:0)
在SQL Server中,INFORMATION_SCHEMA.ROUTINES.ROUTINE_DEFINITION
视图列定义为nvarchar(4000)
,因此不会返回超过4000个字符。使用sys.sql_module.definition
将定义返回为nvarchar(MAX)
。不要使用已弃用的text
数据类型。
请注意,SSMS可能会根据Query->选项 - >结果设置截断值。
答案 1 :(得分:0)
希望它可以帮助你
SELECT SPECIFIC_NAME
,CAST(ROUTINE_DEFINITION AS NVARCHAR(MAX))As ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE IN (
'PROCEDURE'
,'FUNCTION'
)
AND ROUTINE_DEFINITION LIKE '%Your search string%'
ORDER BY 1
答案 2 :(得分:0)
在这里找到:
Where does SQL Server store the stored procedure code?
此SQL将在不截断结果的情况下起作用:
select object_definition(object_id(routine_name)) from information_schema.routines