我想从我的java代码中读取一个STORED PROCEDURE并获取DECLARATION,BODY部分。 是否有任何SQL查询可以获取任何特定过程的Body和声明部分?或者我必须将其作为字符串遍历?
我知道如何从数据库中获取PROCEDURE TEXT:
SELECT *
FROM information_schema.routines
WHERE routine_type = 'PROCEDURE' AND ROUTINE_NAME = '<proc_name>'
and ROUTINE_SCHEMA = '<schema_name>' AND ROUTINE_CATALOG = '<db_name>'
EXEC sp_helptext '<proc name>';
SELECT definition
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('<procedure Name>')
但我有兴趣获得一个程序的不同部分。请建议我,一些实用程序查询以获取任何程序的详细信息。
答案 0 :(得分:1)
在SQL Server中,存储过程没有用于变量声明的专用部分。见syntax for CREATE PROCEDURE statement。 如果要获取有关SP的不同信息,则可以使用以下系统视图:sys.objects / sys.procedures,sys.schemas,sys.sql_modules,sys.parameters。如果您需要更多信息,可以使用Transact Script DOM API。