SQLServer之查询当前服务器下所有目录视图表

database

SQL脚本

/*************1:删除临时表*************/

if exists(select * from tempdb..sysobjects where id=object_id("tempdb..#tempTable"))

drop table #tempTable;

/*************2:定义游标*************/

declare databaseNameCursor cursor for select name from master.dbo.SysDatabases;

declare @databaseName nvarchar(512),@databaseCount int;

set @databaseCount=(select count(1) from master.dbo.SysDatabases);

/*************3:打开游标*************/

open databaseNameCursor;

/*************4:连接游标*************/

fetch next from databaseNameCursor into @databaseName

/*************5:创建临时表*************/

create table #tempTable

(

id int identity(1,1) not null,

databasename nvarchar(max),

schemaname nvarchar(max),

tablename nvarchar(max),

primary key(id)

);

/************6:循环插入临时表中*************/

while (@@fetch_status=0 and @databaseCount>0)

begin

begin try

set @databaseCount=@databaseCount-1;

declare @tableFullName nvarchar(1024);

set @tableFullName="select """+@databaseName+""",schema_name(schema_id),name from "+@databaseName+".sys.tables";

insert into #tempTable(databasename,schemaname,tablename)

exec sp_executesql @tableFullName;

--指向下一个游标

fetch next from databaseNameCursor into @databaseName

end try

begin catch

continue;

end catch

end

/*************7:关闭游标*************/

close databaseNameCursor;

/*************8:释放游标*************/

deallocate databaseNameCursor;

/*************9:查看服务器所有表*************/

select * from #tempTable

SQL脚本使用

先执行注释1,然后注释2到注释8脚本一起执行,最后执行注释9或者使用临时表。

SQL执行结果

 

 

 

以上是 SQLServer之查询当前服务器下所有目录视图表 的全部内容, 来源链接: utcz.com/z/532383.html

回到顶部