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

SQL 判斷資料表是否存在:DAO 程式碼修正與系統表查詢法

     編輯:關於SqlServer

VBA 使用 DAO TableDefs 集合檢查表是否存在,原始碼缺少參數導致錯誤。修正後函式接受表名參數並回傳 Boolean。另提供 Access 系統表 MSysObjects 查詢法:SELECT Count(*) FROM MSysObjects WHERE Name='表名',計數大於 0 即存在。SQL Server 可用 OBJECT_ID('表名') IS NOT NULL 或查詢 sysobjects。

修正後 VBA 函式

Function fExistTable(strTableName As String) As Boolean
    Dim db As Database, i As Integer
    Set db = DBEngine.Workspaces(0).Databases(0)
    db.TableDefs.Refresh
    For i = 0 To db.TableDefs.Count - 1
        If StrComp(strTableName, db.TableDefs(i).Name, vbTextCompare) = 0 Then
            fExistTable = True: Exit Function
        End If
    Next i
    fExistTable = False
End Function

' 呼叫範例
If fExistTable("MyTable") Then MsgBox "存在"

SQL Server 純 SQL 判斷法

IF OBJECT_ID('dbo.MyTable', 'U') IS NOT NULL
    PRINT '表存在';
-- 或
IF EXISTS (SELECT 1 FROM sysobjects WHERE name='MyTable' AND xtype='U')
    PRINT '表存在';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved