Ms-Access

如何使用 SQL 檢查列是否是 Access 數據庫的標識列?

  • August 5, 2016

知道如何檢查一個列是否是 Microsoft SQL Server 的標識列,我目前仍然沒有找到對 Microsoft Access 數據庫的 SQL 執行相同操作的解決方案。

我的問題:

如何使用 SQL 檢查列是否是 Microsoft Access 數據庫的標識列?

(因為我想在我的程式碼中執行此操作,所以 ADO.NET 解決方案也會有所幫助,儘管這似乎是不可能的

DAO 有一個解決方案:

Dim db As DAO.Database, tbl As DAO.TableDef
Dim f As DAO.Field
Set db = CurrentDb()

For Each tbl In db.TableDefs
   If tbl.Name = "Table1" Then
       For Each f In tbl.Fields
           If f.Attributes = 17 And f.Type = 4 Then    '(17 = dbAutoIncrField (16) + dbFixedField(1),  4 = dbLong)
               MsgBox ("Table1 idenity column: " & f.Name)
           End If
       Next f
   End If
Next tbl

這將檢查是否存在Type= 4 [ dbLong] 且Attributes值為 17 (16 [ dbAutoIncrField] + 1 [ dbFixedField]) 的列。

到目前為止,這對我來說效果很好。

引用自:https://dba.stackexchange.com/questions/51577