SQL Server 提供 COM 組件 SQL-DMO (sqldmo.dll) 供程序化管理。在 .NET 中需通過 tlbimp 生成互操作組件。
tlbimp sqldmo.dll /out:rc3sqldmo.dll
項目添加引用 → 瀏覽選擇 rc3sqldmo.dll。
打開 Object Browser 查看 rc3sqldmo 命名空間,所有屬性、方法、事件一目了然。
SQLDMO.SQLServer2 svr = new SQLDMO.SQLServer2Class();
svr.Connect("server_name", "uid", "pwd");
SQLDMO.Databases dbs = svr.Databases;
SQLDMO.Database2 db = (SQLDMO.Database2)dbs.Item("dbname", "owner");
// 或直接
db = (SQLDMO.Database2)svr.Databases.Item("dbname", "owner");
SQLDMO.Tables tbls = db.Tables;
SQLDMO.Table2 tbl = (SQLDMO.Table2)tbls.Item("tablename", "owner");
foreach (object o in tbl.Columns)
{
SQLDMO.Column2 col = (SQLDMO.Column2)o;
string name = col.Name;
string type = col.DataType;
string len = col.Length.ToString();
// 綁定到 UI 或生成代碼...
}
SQLDMO.StoredProcedure2 sp = (SQLDMO.StoredProcedure2)
db.StoredProcedures.Item("spname", "owner");
// 可讀取 sp.Text (創建腳本)、sp.Parameters 等
SQL-DMO 功能極其強大,幾乎覆蓋企業管理器所有操作,是自動化數據庫管理的利器。