использовать мастер
ОБЪЯВИТЬ @db_name varchar (128)
ОБЪЯВИТЬ @DbID int
ОБЪЯВИТЬ @sql_string nvarchar (4000)
ОБЪЯВИТЬ @TableName varchar (30)
Выберите @TableName = ''
установить nocount на
CREATE TABLE [#tblDatabaseName] (
[DbName] [varchar] (128) НЕ NULL,
[TableName] [varchar] (128) NOT NULL)
объявить курсор db_cursor forward_only для
SELECT name, DbID
FROM master..sysdatabases
WHERE name NOT IN ('northwind', 'pubs')
AND (status & 32) <> 32 --loading.
AND (status & 64) <> 64 --pre recovery.
AND (status & 128) <> 128 --recovering.
AND (status & 256) <> 256 --not recovered.
AND (status & 512) <> 512 --Offline
AND (status & 32768) <> 32768 --emergency mode.
AND DbID > 4
open db_cursor
получить следующий из db_cursor в @db_name, @ DbID
while @@ FETCH_STATUS = 0
начать
set @sql_string = ''
+' Insert into #tblDatabaseName '
+' select ''' + @db_name + ''' as ''DbName'', '
+' o.name as ''TableName'' '
+' from [' + @db_name + ']..sysobjects o with(nolock) '
+' where o.name like ''' + @TableName + ''' '
execute sp_executesql @sql_string
fetch next from db_cursor into @db_name, @DbID
конец
освободить db_cursor
select * from # tblDatabaseName
удалить таблицу # tblDatabaseName