代码之家  ›  专栏  ›  技术社区  ›  Luke Foust

何时使用Sql管理对象(SMO)

  •  2
  • Luke Foust  · 技术社区  · 15 年前

    我在做一个利用数据库元数据的项目。到目前为止,我只是查询了数据库目录视图(例如sys.tables),但我知道如果我愿意添加依赖项,使用SMO会“更容易”。

    与元数据查询相比,SMO有哪些优势?任何“gotchas”(例如,需要在我的本地机器上有额外的SQL库,只是为了SMO的奢侈)。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Tim Cooper    13 年前

    sys.tables和其他表不能保证在不同版本的SQLServer之间保持不变,因此下一个版本可能会破坏您的代码。SMO将使用SQL Server的下一个版本进行更新,接口不应更改,因此SMO是更健壮的解决方案。

        2
  •  1
  •   blorkfish    15 年前

    元数据查询将要求您将许多不同的sys.tables与与需要编写脚本的内容相关的特定查询连接起来。


    此外,SMO还有一个依赖项查询器,它允许您查询数据库对象的依赖项。