数据库教程:SQLServer之查询当前服务器下所有目录视图表

SQL脚本 /*************1:删除临时表*************/ if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#tempTable')) drop table #tempTable; …


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之查询当前服务器下所有目录视图表

 

 

需要了解更多数据库技术:SQLServer之查询当前服务器下所有目录视图表,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/628713.html

(0)
上一篇 2021年5月30日
下一篇 2021年5月30日

精彩推荐