获取存储过程 SQL 文本很热门?
Posted
技术标签:
【中文标题】获取存储过程 SQL 文本很热门?【英文标题】:Hot to get stored procedure SQL text? 【发布时间】:2011-11-22 10:26:37 【问题描述】:有没有办法从数据字典中检索(和更新)实际的存储过程 SQL 文本?
一个示例用例是为 Advantage Data Architect 编写替代工具。但是目前我真的需要这个来解决 ADS 9.1 中的错误。
我想一定是这样的:
EXECUTE PROCEDURE sp_GetStoredProcedureProperty('PROCNAME', 'SQLTEXT');
我发现了一个名为sp_ModifyProcedureProperty
的系统过程,它可以用来修改 SP 的某些部分:
http://devzone.advantagedatabase.com/dz/WebHelp/Advantage10.1/index.html?master_sp_modifyprocedureproperty.htm
【问题讨论】:
【参考方案1】:字典中有一个名为 system.storedprocedures
的系统表,其中有一个名为 SQL_Script
的字段,可以满足我的需要。
例子:
SELECT SQL_Script FROM system.storedprocedures WHERE Name = 'PROCNAME';
【讨论】:
嗨,如何对此错误进行排序:Msg 208,Level 16,State 1,Line 1 Invalid object name 'system.storedprocedures'。 您的错误消息似乎来自 Microsoft SQL Server,这个问题是关于 Advantage Database Server 的。您可以使用 SQL Server 中的OBJECT_DEFINITION
和 OBJECT_ID
函数实现类似的功能。以上是关于获取存储过程 SQL 文本很热门?的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server存储过程文本加密与解密过程详解 2019版可用