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

使用 SQL-DMO 程式化存取 SQL Server 資料庫物件資訊

     編輯:關於SqlServer

適用環境

  • Windows NT 4.0 SP6 / Windows 2000
  • Visual Basic 6.0
  • SQL Server 2000
  • 參考:「Microsoft SQLDMO Object Library」

核心物件模型

SQLServer
  └─ Databases (Database)
        └─ Tables (Table)
              ├─ Columns (Column)
              ├─ Indexes (Index)
              ├─ Keys (Key)
              └─ Triggers (Trigger)

關鍵 VB6 代碼片段

連線伺服器

Dim oSQLServer As SQLDMO.SQLServer
Set oSQLServer = New SQLDMO.SQLServer
oSQLServer.LoginSecure = True  ' 或設定 Login/Password
oSQLServer.Connect ServerName

列舉使用者資料庫

Dim oDB As SQLDMO.Database
For Each oDB In oSQLServer.Databases
    If Not oDB.SystemObject Then
        cboDatabases.AddItem oDB.Name
    End If
Next

列舉使用者資料表

Dim oTable As SQLDMO.Table
For Each oTable In oCurrentDB.Tables
    If Not oTable.SystemObject Then
        cboTables.AddItem oTable.Name
    End If
Next

列舉欄位資訊

Dim oCol As SQLDMO.Column
For Each oCol In oCurrentTable.Columns
    lstColumns.AddItem oCol.Name & "  " & oCol.TypeName & "(" & oCol.Length & ")"
    ' 其他屬性: oCol.Nullable, oCol.Identity, oCol.DefaultValue, ...
Next

常用屬性速查

物件關鍵屬性
DatabaseName, Owner, CreateDate, Size, DBOption
TableName, Owner, CreateDate, Rows, HasClusteredIndex, SystemObject
ColumnName, TypeName, Length, Precision, Scale, Nullable, Identity, IdentitySeed, IdentityIncrement, DefaultValue
IndexName, IndexType (Clustered/NonClustered), FillFactor, IsUnique, IsPrimaryKey

遷移建議 (SQL Server 2005+)

  • SQL-DMO 已淘汰,改用 SMO (SQL Server Management Objects),Microsoft.SqlServer.Management.Smo 命名空間,.NET 原生、功能更豐富。
  • 或直接查詢目錄檢視 sys.databases, sys.tables, sys.columns, sys.indexes 等,跨語言、無 COM 相依。

SQL-DMO 是經典 VB6/ASP 時代存取 SQL Server 中繼資料的標準方式,理解其物件層次有助於理解現代目錄檢視結構。

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