如何查询所有数据库中包含某一字符串的存储过程。是所有数据库,不是当前数据库。

 我来答
xu3180497
2018-08-30 · TA获得超过1660个赞
知道小有建树答主
回答量:390
采纳率:66%
帮助的人:215万
展开全部

假定你是要查询同一服务器上同一实例上的若干数据库,基本思路就是先找到当前实例上的所有数据库集合,然后再根据这些数据库集合去获取每个集合对应的存储过程集合。因为你这边未提供具体数据库语言,这里已MSSQL为例,具体实现过程如下(假定你需要搜索字符串为【数据库】):

declare @sql nvarchar(2000)
declare @dbname varchar(20)
declare @pname varchar(100)
create table #tmptb (dbname varchar(20),pname varchar(100))
declare mycur cursor for 
    select name from master.dbo.sysdatabases where dbid > 4
open mycur
fetch next from mycur into @dbname
while @@FETCH_STATUS = 0
begin
  set @sql = 'select distinct ''' + @dbname + ''' as dbname,a.name as procname from ' + @dbname + '.dbo.sysobjects a inner join ' + @dbname + '.dbo.syscomments b ON a.id = b.id where a.xtype = ''P'' and b.[text] LIKE ''%数据库%'' order by a.name'
  insert into #tmptb(dbname,pname) exec(@sql)
  fetch next from mycur into @dbname
end
close mycur
deallocate mycur
select * from #tmptb
drop table #tmptb
go

当然,具体应用时你可以创建一个存储过程,存储过程定义一个入参【待匹配字符串】,如果有需要的话也可以定义一个出参【查找到的集合】,以实际需要灵活调整就可以了。

德以筠7n
2018-08-29 · 超过33用户采纳过TA的回答
知道答主
回答量:173
采纳率:54%
帮助的人:32万
展开全部
你不知道什么叫联合查询吗?笛卡儿圈在一起统一查询也行啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式