2010-07-24 62 views
2

我正在開發一個利用數據庫元數據的項目。到目前爲止,我只是查詢數據庫目錄視圖(例如sys.tables),但我知道如果我願意添加依賴項,SMO會更容易。何時使用Sql管理對象(SMO)

SMO比元數據查詢有什麼優勢?任何「陷阱」(例如,爲了SMO的奢侈,我的本地機器上需要額外的SQL庫)。

回答

3

sys.tables和其他人不保證不同版本的SQL Server之間保持不變,所以下一個版本可能會破壞你的代碼。 SMO將使用下一版本的SQL Server進行更新,並且接口不應更改,因此SMO是更強大的解決方案。

1

元數據查詢將要求您加入許多不同的sys.tables,並提供與腳本所需內容相關的特定查詢。
深入瞭解這些關係需要使用sys.tables。
SMO簡單得多,並且具有表示數據庫結構的集合。
另外,SMO有一個Dependency Walker,它可以讓你查詢數據庫對象的依賴關係。