我正在寻找一种方法将存储过程从一个sql数据库复制到同一个实例上的另一个sql数据库。它需要是自动的,最好是通过代码(t-sql或任何东西),所以使用生成脚本技巧是不可行的(而且我不想维护那么多脚本,人们忘记运行它们。)
我对此进行了一些搜索,但没有找到可行的解决方案。有人提出了一个聪明的伎俩,即将所有存储过程文本生成到sql字段中,然后将其转换并在目标数据库上执行它,但不幸的是,这有问题。
有没有人对如何做到这一点有任何其他想法,如果可能的话?
如果我不能以编程方式进行,那么使用ssis会有快速解决方案吗?
感谢。
编辑:使用sql 2005和2008版本的混合。
答案 0 :(得分:0)
您可以使用SMO framework.
在.NET中以编程方式执行此操作可以通过PowerShell.
完成免费/轻松实施我有一个脚本就是这样 - 它为SQL对象生成脚本,包括Stored Procs,并在目标服务器上执行创建脚本。
当安全问题不允许链接服务器,但您需要在多个服务器之间保持某些资源同步时,这是一个方便的解决方法。
如果您关心的只是procs,那么检查源和目标DB上的sys.sql_modules
并通过definition
字段中的{{1}}字段执行目标中不存在的任何内容都应该非常简单。那种观点。