SQL:以编程方式将存储过程从一个db复制到另一个db

时间:2011-05-25 11:51:34

标签: sql sql-server stored-procedures

我正在寻找一种方法将存储过程从一个sql数据库复制到同一个实例上的另一个sql数据库。它需要是自动的,最好是通过代码(t-sql或任何东西),所以使用生成脚本技巧是不可行的(而且我不想维护那么多脚本,人们忘记运行它们。)

我对此进行了一些搜索,但没有找到可行的解决方案。有人提出了一个聪明的伎俩,即将所有存储过程文本生成到sql字段中,然后将其转换并在目标数据库上执行它,但不幸的是,这有问题。

有没有人对如何做到这一点有任何其他想法,如果可能的话?

如果我不能以编程方式进行,那么使用ssis会有快速解决方案吗?

感谢。

编辑:使用sql 2005和2008版本的混合。

1 个答案:

答案 0 :(得分:0)

您可以使用SMO framework.

在.NET中以编程方式执行此操作

可以通过PowerShell.

完成免费/轻松实施

我有一个脚本就是这样 - 它为SQL对象生成脚本,包括Stored Procs,并在目标服务器上执行创建脚本。

当安全问题不允许链接服务器,但您需要在多个服务器之间保持某些资源同步时,这是一个方便的解决方法。

如果您关心的只是procs,那么检查源和目标DB上的sys.sql_modules并通过definition字段中的{{1}}字段执行目标中不存在的任何内容都应该非常简单。那种观点。