sp_msforeachdb 'use [?] if object_id(''存儲過程名'') is not null select ''?'''
select * from sysobjects where id=object_id('P_ProName')注意,每个库都有自己的sysobjects表,所以要逐个库去运行
sp_msforeachdb 'use [?] if object_id(''存儲過程名'') is not null select ''?''' 估计只有这种方式...
declare @sql varchar(8000) select @sql=isnull(@sql+' union all select ','select ')+ 'name=''' + name + ''' from ' + name + '..sysobjects where name=''存储过程名''' from sysdatabases exec(@sql)
declare @sql varchar(8000)select @sql=isnull(@sql+' union all select ','select ')+ 'name=''' + name + ''' from ' + name + '..syscomments where text like ''create procedure %dbgendata%''' from sysdatabases exec(@sql)在master库下运行
支持六楼,同意6楼的, sp_msforeachdb 'use [?] if object_id(''P_ProName'') is not null select ''?'''你不在需要做代码做任何改动,只要拷贝下来,放到你的sqlserver 上执行,就可以返回有该P_ProName存储过程的数据库名称.
3楼强但速度有点慢,11楼又觉不足,关于11楼的改进意见:procprduce 改为proc,我喜欢简写就查不出来了,模糊查询不能一次判断是哪个库,至少要显示出相关内容,我认为换个表用sysobjects更好 declare @sql varchar(8000) select @sql=isnull(@sql+' union all select ','select ')+ 'name=''' + name + ''' from ' + name + '..sysobjects where xtype=''p'' and name=''存储过程名''' from sysdatabases exec(@sql)
估计只有这种方式...
select @sql=isnull(@sql+' union all select ','select ')+ 'name=''' + name + ''' from ' + name + '..sysobjects where name=''存储过程名''' from sysdatabases
exec(@sql)
exec(@sql)在master库下运行
sp_msforeachdb 'use [?] if object_id(''P_ProName'') is not null select ''?'''你不在需要做代码做任何改动,只要拷贝下来,放到你的sqlserver 上执行,就可以返回有该P_ProName存储过程的数据库名称.
declare @sql varchar(8000)
select @sql=isnull(@sql+' union all select ','select ')+ 'name=''' + name + ''' from ' + name + '..sysobjects where xtype=''p'' and name=''存储过程名''' from sysdatabases
exec(@sql)