首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

查詢資料庫中所有表格、檢視與物件清單

     編輯:關於SqlServer

開發管理工具時常需列出資料庫內的所有表格、檢視等物件。本文提供兩種通用做法:ADO Schema 查詢與原生 SQL 查詢,並支援 Access、SQL Server、Oracle 等主流資料庫。

方法一:ADO OpenSchema 方法(通用性最佳)

使用 ADODB.Connection.OpenSchema(adSchemaTables) 可取得標準化的資料表結構描述資訊,包含目錄名、表名、擁有者、類型(TABLE/VIEW/SYSTEM TABLE)與描述。以下為經典 ASP 範例:

<% 
Dim Conn, RS, connstr
Set Conn = Server.CreateObject("ADODB.Connection")
connstr = "DSN=Sql;UID=sa;PWD=;DATABASE=master"
Conn.CursorLocation = adUseClient
Conn.Open connstr
Set RS = Conn.OpenSchema(adSchemaTables)
%>
<table border="1">
<tr><th>資料庫</th><th>表格名稱</th><th>擁有者</th><th>類型</th><th>描述</th></tr>
<% Do Until RS.EOF %>
<tr>
    <td><%= RS("TABLE_CATALOG") %></td>
    <td><%= RS("TABLE_NAME") %></td>
    <td><%= RS("TABLE_SCHEMA") %></td>
    <td><%= RS("TABLE_TYPE") %></td>
    <td><%= RS("DESCRIPTION") %></td>
</tr>
<% RS.MoveNext : Loop %>
</table>

此法在 Access、SQL Server、IIS/PWS 均可執行,且回傳欄位標準一致。

方法二:原生 SQL 直查系統表(輕量快速)

資料庫查詢語句備註
AccessSELECT * FROM MSysObjects需開啟「顯示系統物件」
SQL ServerSELECT * FROM dbo.sysobjects建議加 WHERE xtype IN ('U','V') 過濾使用者表/檢視
OracleSELECT * FROM tab或查 user_tables/all_tables

提醒:不加篩選條件會包含系統物件、儲存程序等雜訊,實務上請依 TYPE/xtype 欄位過濾。

進階:取得欄位、索引、外鍵等詳細結構

  • OpenSchema(adSchemaColumns):欄位定義、資料型別、長度、是否可為 Null
  • OpenSchema(adSchemaIndexes):索引資訊
  • OpenSchema(adSchemaForeignKeys):外鍵關聯
  • OpenSchema(adSchemaProcedures):預存程序清單

善用 ADO Schema 集合可建構完整的資料庫文件產生器或程式碼產生工具。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved