系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 數據庫 > MsSql > 詳細頁面

SQLServer之查詢當前服務器下所有目錄視圖表

時間:2020-03-10來源:電腦系統城作者:電腦系統城

SQL腳本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*************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執行結果

 

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

jlzzjlzz亚洲乱熟在线播放