Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 何时使用Sql管理对象(SMO)_.net_Sql Server_Smo - Fatal编程技术网

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

.net 何时使用Sql管理对象(SMO),.net,sql-server,smo,.net,Sql Server,Smo,我正在从事一个利用数据库元数据的项目。到目前为止,我只是查询了数据库目录视图(例如sys.tables),但我知道如果我愿意添加依赖项,使用SMO会“更容易” 与元数据查询相比,SMO有哪些优势?任何“陷阱”(例如,为了SMO的奢侈,我需要在本地机器上有额外的SQL库) 不能保证sys.tables和其他表在不同版本的SQL Server之间保持不变,因此下一版本可能会破坏您的代码。SMO将使用SQL Server的下一个版本进行更新,接口不应更改,因此SMO是更健壮的解决方案。元数据查询将要求

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


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

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

元数据查询将要求您使用与所需脚本相关的特定查询连接许多不同的sys.table。
使用sys.tables需要深入了解这些关系。
SMO要简单得多,并且具有表示数据库结构的集合。
此外,SMO还有一个依赖项遍历器,它允许您查询数据库对象的依赖项