首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程查询文本是否存储在任何表中?

存储过程查询文本是否存储在任何表中?
EN

Database Administration用户
提问于 2020-01-08 22:25:45
回答 1查看 88关注 0票数 2

除了需要计划句柄的DM_EXEC_SQL_TEXT函数之外,我在sys模式对象中看不到任何东西,但我试图从其中获取查询文本的过程目前没有运行。(也许有一种通过他们缓存的plans?...though的方法,我正在寻找的那些可能没有缓存的计划。)

存储过程的查询文本是否存储在查询的任何地方?

我认为sp_helptext可能是一种选择:https://learn.microsoft.com/en-us/sql/relational-databases/stored-procedures/view-the-definition-of-a-stored-procedure?view=sql-server-ver15#TsqlProcedure

EN

回答 1

Database Administration用户

回答已采纳

发布于 2020-01-08 22:56:38

有几种获取此信息的方法需要不同的输入信息。

信息_图式

您只需要知道要定义的对象的名称。

代码语言:javascript
复制
SELECT ROUTINE_NAME, ROUTINE_DEFINITION 
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_NAME = 'MyProcName'

注意,此架构是特定于数据库的,因此您需要在数据库的上下文中进行此查询才能返回正确的数据。还请注意,它只返回过程的前4000个字符。

对象_定义

您需要知道您正在寻找的过程的object_id。

代码语言:javascript
复制
SELECT OBJECT_DEFINITION(*object_id*)

也是特定于数据库的,但返回对象的完整文本。

sys.sql_模块

您需要知道您正在寻找的过程的object_id。

代码语言:javascript
复制
SELECT * FROM sys.sql_modules WHERE object_id = *object_id*

也是特定于数据库的,但返回对象的完整文本。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/256970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档