获取存储过程 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_DEFINITIONOBJECT_ID 函数实现类似的功能。

以上是关于获取存储过程 SQL 文本很热门?的主要内容,如果未能解决你的问题,请参考以下文章

您可以强制 SQL 存储过程按给定顺序获取锁吗

SQL Server存储过程文本加密与解密过程详解 2019版可用

oracle存储过程执行很慢sql很快

从 sql 调用和执行存储过程到 vb.net 文本框

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?