delete from [DatabaseName].[dbo].[hak_tables]
declare @counter int;
declare @openquery nvarchar(2000), @tsql nvarchar(2000), @servername nvarchar(2000)
create table #temp(
id int,
servername nvarchar(50)
)
insert into #temp(id,servername)
values (1,'ServerName'),
(2,'[ServerName -2]'),
(3,'[ServerName -3]')
create table #tablehavuzu(
ID int identity (1,1),
sunucuAdi nvarchar(1000),
databaseName nvarchar(1000),
name nvarchar(1000),
type nvarchar(1000),
create_date datetime,
modify_date datetime
)
declare @cmd3 nvarchar(max)
set @counter = 1
while @counter <= (select count(1) from #temp)
begin
create table #databasename(
name nvarchar(1000),
counter int
)
set @servername = (select servername from #temp where id=@counter)
declare @sorg nvarchar(max)
set @sorg='insert into #databasename
select name,ROW_NUMBER() over(order by name asc) from '+@servername+'.master.sys.databases '
exec (@sorg)
declare @counter1 int;
set @counter1 = 1
declare @databaseCount int
set @databaseCount = (select count(1) from #databasename)
while @counter1 <= @databaseCount
begin
declare @databaseName nvarchar(1000),@sql nvarchar(1000)
begin try
set @databaseName = (select name from #databasename where counter=@counter1)
set @sql ='select @@SERVERNAME sunucuAdi, '''''+@databaseName+''''' as databaseName, name, type, create_date, modify_date from '+@servername+'.'+@databaseName+'.sys.tables'
set @cmd3= 'select * from openquery('+@servername+','''+@sql+''')'
insert into #tablehavuzu
exec (@cmd3)
end try
begin catch
end catch
set @counter1 = @counter1 +1;
end
set @counter = @counter + 1;
drop table #databasename
end
insert into [M3].[dbo].[hak_tables]
select * from #tablehavuzu
drop table #temp
drop table #tablehavuzu