【发布时间】:2011-10-06 13:39:21
【问题描述】:
我想使用 SMO 来完成一些在 T-SQL 中不容易完成的事情。但是,我发现的所有示例都是针对 C# 或 Powershell 的。有没有一种通过 T-SQL 调用 SMO 的简单方法,就像使用 DMO 和 sp_OACreate 一样?解决这个问题的一种方法是通过 PowerShell 通过xp_cmdshell 调用 SMO——但这会很难看。有什么建议吗?
最明显的例子是“使用 SMO 编写表的脚本”,通过 SQL 调用。
谢谢。
【问题讨论】:
-
您具体要做什么?我敢打赌,它们在 T-SQL 中可能与在 SMO 中一样容易。
-
@siride 虽然一切都可以在直接的 T-SQL 中完成,但至少使用 SMO 编写对象脚本更容易一些。查看Scripter 和ScriptingOptions。
-
@srutzky:我用过它们,它们(大部分)都很棒。不过,我想知道,您是否应该只编写一个 C# 工具来执行此操作?有什么理由必须通过 T-SQL 来完成?
-
@siride 同意,这当然是一个很好/有效的问题。
-
@srutzky 这比 PowerShell 脚本有什么优势?我必须在 SQL Server 引擎之外调用两者。试图通过 T-SQL 来完成,因为我已经通过 DMO 这样做了。诚然,5 年前的问题,但我最终是通过 PowerShell 完成的。
标签: sql-server tsql sqlclr smo