程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> T-SQL查詢access的數據表名的列表

T-SQL查詢access的數據表名的列表

編輯:關於Access數據庫

  今天打開CSDN發一個網友問我如何用T-SQL判斷某個表在ACCESS中是否存在,也就是如何用t-sql顯示access的用戶表,其實Access有一個隱藏了類似於sysobjects的系統表,並且必須設置權限才可以訪問得到,下面我寫出我測試的過程:

  環境:SQL Server 2005,Access2000

  首先,我們讓類似於MSSQL的幾個系統表顯示出來,點擊工具->選項->視圖->系統對象前面打上勾,點確定,你會發現在對象->表下面多出5個MS打頭的表,這是就隱藏的系統表。

  接著,我們如果在查詢分析器中運行:

  select name

  from

  OpenRowSet('microsoft.jet.oledb.4.0',';database=c:/db1.mdb','select * from MSysObjects')

  報錯如下:

  消息 7357,級別 16,狀態 2,第 1 行

  無法處理對象 "select * from MSysObjects"。鏈接服務器 "(null)" 的 OLE DB 訪問接口 "microsoft.jet.oledb.4.0" 指示該對象沒有列,或當前用戶沒有訪問該對象的權限。

  其實這是因為沒有權限的原因造成的,那麼我們打開這個操作權限,工具->安全->用戶與組安全->選表msysobjects,設定權限,點確定後再運行上面的語句看看,

  select name

  from

  OpenRowSet('microsoft.jet.oledb.4.0',';database=c:/db1.mdb','select * from MSysObjects')

  where type = 1 and flags = 0

  /*

  name

  ------------------------------------------------------------------------------------------

  ta

  Switchboard Items

  myclass

  ta1

  ta2

  (5 行受影響)

  */

  注:以上我測試的Access內的用戶表。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved