2010年12月22日 星期三

SQL Server: List all replicate databases and their replicate tables

Create Table ##PublisheTable
( DBName varchar(256),
TName varchar(256)
)

declare @DBName Varchar(20)
declare @SQL Varchar(2000)

--declare @SQL Varchar(2000)
--Create Table ##VSDESC
--( DatabaseName Varchar(100), Module Varchar(50), [Version] Varchar(50), Since Date, ReleaseLable Varchar(10), LastTransactionDate Date);

declare MyCursor Cursor for
SELECT RTRIM(m.name)SysDBName
from master..sysdatabases m
where m.status not in (512, 528)
and m.dbid > 4
Open MyCursor

Fetch next from MyCursor into @DBName

while @@FETCH_STATUS = 0
begin

SET @SQL = 'USE [' + @DBName + ']; INSERT INTO ##PublisheTable Select DB_NAME() as DBName, Name TName from sys.tables '
SET @SQL = @SQL + 'where schema_id = 1 '
SET @SQL = @SQL + 'and is_published = 1 '

EXEC(@sql)

Fetch next from MyCursor into @DBName
End
Close MyCursor
deallocate MyCursor

Select * from ##PublisheTable;
Drop Table ##PublisheTable;

沒有留言: