【发布时间】:2010-07-24 13:53:06
【问题描述】:
我正在开展一个利用数据库元数据的项目。迄今为止,我刚刚查询了数据库目录视图(例如 sys.tables),但我知道如果我愿意添加依赖项,使用 SMO 会“更容易”。
与元数据查询相比,SMO 有哪些优势?任何“陷阱”(例如,需要在我的本地机器上安装额外的 SQL 库只是为了享受 SMO 的乐趣)。
【问题讨论】:
标签: .net sql-server smo
我正在开展一个利用数据库元数据的项目。迄今为止,我刚刚查询了数据库目录视图(例如 sys.tables),但我知道如果我愿意添加依赖项,使用 SMO 会“更容易”。
与元数据查询相比,SMO 有哪些优势?任何“陷阱”(例如,需要在我的本地机器上安装额外的 SQL 库只是为了享受 SMO 的乐趣)。
【问题讨论】:
标签: .net sql-server smo
sys.tables 和其他文件不能保证在不同版本的 SQL Server 之间保持不变,因此下一个版本可能会破坏您的代码。 SMO 将使用下一版本的 SQL Server 进行更新,并且接口不应更改,因此 SMO 是更强大的解决方案。
【讨论】:
元数据查询将要求您将许多不同的 sys.table 与与您需要编写脚本的内容相关的特定查询连接起来。
使用 sys.tables 需要深入了解这些关系。
SMO 要简单得多,并且具有代表您的数据库结构的集合。
此外,SMO 有一个 Dependency Walker,可以让您查询数据库对象的依赖关系。
【讨论】: