【发布时间】:2021-08-22 13:23:10
【问题描述】:
我在 C# 中设计了一个 Migrate() 方法来将一些 SQL 对象从一台服务器传输到另一台服务器,我想将它用作我的 sql 服务器中的存储过程。
如何使用 SMO 在存储过程中调用 c# 方法?还是使用 c# 方法作为存储过程?
由于我在脚本中使用 SMO 对象,因此无法使用它创建程序集。
我遵循了这个解决方案,但 CLR 不支持 SMO:
另一种解决方案是将.dll创建为COM+应用程序,但不是很方便。确实,使用OLE自动化对象在SQL server中不是很稳定。
【问题讨论】:
-
我不清楚 SMO 在这种情况下是否需要添加任何内容。为什么首先要使用 SMO?在 CLR 中,您可以使用
SqlConnection和SqlCommand直接调用 SQL。 SMO 可以完成的大多数您自己不容易复制的任务(例如生成脚本)最好留给客户端代码而不是 CLR 函数。 -
@JeroenMostert 我用 smo 设计了 Migrate 方法来传输一些 sql 对象。我想在我的 SQL Server 中将此方法称为 storedProcedure。
-
您在此处获得了 SSIS 标记,这是一个可接受的解决方案空间,还是只是急切地标记以增加覆盖范围?
标签: sql-server stored-procedures ssis c# smo