gpt4 book ai didi

sql - 将存储过程的文本获取到SQL Server中的变量中

转载 作者:行者123 更新时间:2023-12-04 13:50:37 25 4
gpt4 key购买 nike

我想遍历几个存储的过程,并从每个过程中提取一个字符串以用于另一个过程(基本上是4部分的远程服务器字符串)

因此,我可以将存储的procs列表从SysObjects(类型= P)放入一个表中,然后在每个表上调用sp_helptext的表变量中循环或游标。

但是,如何将sp_helptext的文本结果转换为变量,以便可以对单词“ BOCTEST ”等进行CharIndex操作?

是否存在像sys.procedures这样的表来存储文本。

最佳答案

可移植的方法是使用ANSI/ISO View INFORMATION_SCHEMA.ROUTINES,但是您只会得到存储过程定义的前4000个字符:

declare @source_code varchar(max)

select @source_code = t.ROUTINE_DEFINITION
from information_schema.routines t
where specific_schema = 'owner-schema' -- e.g., dbo
and specific_name = 'my_stored_procedure_name' -- your stored procedure name here

或者,您可以按照相同的方式使用系统 View sys.sql_modules:
declare @source_code varchar(max)

select @source_code = definition
from sys.sql_modules
where object_id = object_id('dbo.my_stored_procedure_name')

或者,最简单的方法:
declare @source_code varchar(max)
set @source_code = object_definition( 'dbo.my_stored_procedure_name' )

关于sql - 将存储过程的文本获取到SQL Server中的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21708681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com