本机上有几十个数据库,现在只知道一个存储过程名为SProcA,怎么知道这个存储过程是属于哪个数据库的呢?

解决方案 »

  1.   

    循环数据库..然后查
    if exists(select * from sysobjects where xtype='P' and name='SProcA')
      

  2.   

    declare @dbname sysnamedeclare cur cursor for 
      select name 
       from master..sysdatabases
        where name not in('master','model','msdb','tempdb')open cur
    fetch next from cur into @dbnamewhile @@fetch_status=0
    begin
        exec('if exists(select * from ['+@dbname+']..sysobjects where xtype=''P'' and name=''SalesByCategory'')
                 print '''+@dbname+'''')
        fetch next from cur into @dbname
    end
    close cur
    deallocate cur
      

  3.   

    declare @dbname varchar(50)
    declare @spname varchar(50)
    set @spname='SProcA'declare @t table (Id int identity,dbname varchar(50),spname varchar(50))declare roy cursor for select name from master.dbo.sysdatabasesopen royfetch next from roy into @dbname
    while @@fetch_status=0
    begin
    declare @sql nvarchar(1000),@i int
    set @sql='select @i=count(1) from '+@dbname+'.dbo.sysobjects where XTYPE=''p'' AND name='''+@spname+''''exec sp_executesql @sql,N'@i int output',@i outputif @i>0
    insert into @t(dbname,spname) select @dbname,@spnamefetch next from roy into @dbnameend
    close roy
    deallocate roy
    select * from @t
      

  4.   

    Can be able to find the <Database Name> without any scripts.
      

  5.   

    谢谢 liangCK (不知道是不是MM),ojuju10 以及各位,结贴了.