设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2216|回复: 0

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

[复制链接]

11

主题

156

金钱

210

积分

入门用户

发表于 2020-3-30 15:32:28 | 显示全部楼层 |阅读模式

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

  4. /*************2:定义游标*************/
  5. declare databaseNameCursor cursor for select name from master.dbo.SysDatabases;
  6. declare @databaseName nvarchar(512),@databaseCount int;
  7. set @databaseCount=(select count(1) from master.dbo.SysDatabases);

  8. /*************3:打开游标*************/
  9. open databaseNameCursor;

  10. /*************4:连接游标*************/
  11. fetch next from databaseNameCursor into @databaseName

  12. /*************5:创建临时表*************/
  13. create table #tempTable
  14. (
  15. id int identity(1,1) not null,
  16. databasename nvarchar(max),
  17. schemaname nvarchar(max),
  18. tablename nvarchar(max),
  19. primary key(id)
  20. );

  21. /************6:循环插入临时表中*************/
  22. while (@@fetch_status=0 and @databaseCount>0)
  23.     begin
  24.         begin try
  25.             set @databaseCount=@databaseCount-1;

  26.             declare @tableFullName nvarchar(1024);
  27.             set @tableFullName='select '''+@databaseName+''',schema_name(schema_id),name from '+@databaseName+'.sys.tables';

  28.             insert into #tempTable(databasename,schemaname,tablename)
  29.             exec sp_executesql  @tableFullName;
  30.             --指向下一个游标
  31.             fetch next from databaseNameCursor into @databaseName

  32.         end  try
  33.         begin catch
  34.             continue;
  35.         end catch
  36.     end

  37. /*************7:关闭游标*************/
  38. close databaseNameCursor;

  39. /*************8:释放游标*************/
  40. deallocate databaseNameCursor;

  41. /*************9:查看服务器所有表*************/
  42. select * from #tempTable

复制代码


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

SQL执行结果
1.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表