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

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执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值