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之查询当前服务器下所有目录视图表,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/628713.html