1

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

执行(字符串 Sql)

但是有些 sp 是以这种方式执行的,但有些人在附近以正确的语法说...什么是最好的方法...

我正在使用 sql server 2005

任何人都可以帮助我吗

4

1 回答 1

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 - 将存储过程从一个 db 复制到另一个

于 2013-10-28T09:33:26.663 回答