复制存储过程一个数据库到另一个数据库没有答案

时间:2013-10-28 09:22:10

标签: sql-server

我想以编程方式将我的存储过程从一个数据库复制到另一个数据库 我试过很多方法是不可能的,我尝试使用以下命令

exec(string Sql)

但是有些sp是以这种方式执行的,但是有些人用正确的语法说... 这样做的最佳方法是什么......

我使用sql server 2005

任何人都可以帮助我

1 个答案:

答案 0 :(得分:1)

以下是将Master数据库中的所有sp复制到目标数据库的代码,您可以通过过滤程序名称上的查询来复制您喜欢的sp。

@sql定义为nvarchar(max) @Name是目标数据库

DECLARE c CURSOR FOR 
   SELECT Definition
   FROM [ResiDazeMaster].[sys].[procedures] p
   INNER JOIN [ResiDazeMaster].sys.sql_modules m ON p.object_id = m.object_id

OPEN c

FETCH NEXT FROM c INTO @sql

WHILE @@FETCH_STATUS = 0 
BEGIN
   SET @sql = REPLACE(@sql,'''','''''')
   SET @sql = 'USE [' + @Name + ']; EXEC(''' + @sql + ''')'

   EXEC(@sql)

   FETCH NEXT FROM c INTO @sql
END             

CLOSE c
DEALLOCATE c

如果要使用sql server工具,请按照 SQL Server - copy stored procedures from one db to another