用SQL語(yǔ)句查找Access中某表是否存在的小技巧
Access數(shù)據(jù)庫(kù)雖然功能單一,但的確是一個(gè)小巧精干的開(kāi)發(fā)伙伴,我在多個(gè)項(xiàng)目中與它見(jiàn)面,為了探知Access數(shù)據(jù)庫(kù)的本源,今天上網(wǎng)查了些資料。現(xiàn)總結(jié)歸納如下:
在Access數(shù)據(jù)庫(kù)中通過(guò)SQL語(yǔ)句找到某一表是否存在的確是一件困難的事。幸好, Access本身就有一些隱含的數(shù)據(jù)對(duì)象能夠保存你庫(kù)中的信息,今天我就遇到了要用SQL,通過(guò)程序查詢(xún)某一表是否存在的問(wèn)題,解決方法如下:
由于Access數(shù)據(jù)庫(kù)本身的“管理員”組沒(méi)有訪(fǎng)問(wèn)隱含對(duì)象的權(quán)限,因此先要:工具 -> 選項(xiàng) -> 視圖 -> 隱藏對(duì)象、系統(tǒng)對(duì)象,前面的勾選上。
然后,工具 -> 安全 -> 用戶(hù)與組的權(quán)限,在對(duì)象名稱(chēng)中選定 MSysObjects(我只用到這個(gè)對(duì)象,如果需要用到其它的,可以再選) ,然后權(quán)限中設(shè)置“讀取數(shù)據(jù)”權(quán)限。
最后,保存設(shè)置,在程序中就可以通過(guò)SQL語(yǔ)句查詢(xún)表是否存在了,語(yǔ)句如下:
SELECT Count(*) AS RTab FROM MSysObjects WHERE (((MSysObjects.Name) Like "需判斷的已知表名"));
返回1為存在, 0為不存在
系統(tǒng)環(huán)境:Win2000 Access2000
相關(guān)文章:
1. Access數(shù)據(jù)庫(kù)安全的幾個(gè)問(wèn)題2. 什么是Access數(shù)據(jù)庫(kù)3. 巧用SQL語(yǔ)言在ACCESS數(shù)據(jù)庫(kù)中批量替換內(nèi)容4. 聊聊Mybatis中sql語(yǔ)句不等于的表示5. 如何遠(yuǎn)程調(diào)用ACCESS數(shù)據(jù)庫(kù)6. 數(shù)據(jù)庫(kù)相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL7. Oracle數(shù)據(jù)庫(kù)中SQL語(yǔ)句性能調(diào)整原則8. 使用SQL語(yǔ)句快速獲取SQL Server數(shù)據(jù)字典9. Microsoft Office Access添加頁(yè)眉或頁(yè)腳的方法10. Microsoft Office Access創(chuàng)建一個(gè)表的子表的方法
