2008-12-18 60 views
5

我从生产中恢复了我的开发数据库,​​并且我的开发环境中需要的存储过程在我的生产数据库中不存在。 Ii可以使用命令将SQL Server存储过程导入到SQL Server中。大约有88个文件,因为每个程序都在不同的文本文件中。在SQL Server中导入现有的存储过程

TIA! 克里斯

回答

9

哎呀,你没生成脚本的痛苦的方式。您应该通过右键单击SSMS中的数据库,然后选择“任务” - >“生成脚本”,为所有过程创建单个脚本。

但是,如果你不想再经历这个过程中,文件夹中打开一个命令外壳,并记住那些老批处理文件天:

for %f in (*.sql) do sqlcmd -i %f 

这应该做的伎俩! 如果需要,您可以将其他参数添加到sqlcmd(即登录,密码,服务器名称等)。要查看交换机列表,只需执行sqlcmd -h

0

右击开发数据库命中生成SQL脚本,然后只能选择存储precedures。如果你需要额外的过滤,你甚至可以选择你不想要的存储过程。

然后在开发上运行该查询。

0

我不知道是否有一个命令行的方式来做到这一点,但如果你让他们都在文本文件中,它不应该是很难在所有写急速下降和肮脏的应用程序,只需通过所有循环文件,并使用您选择的任何语言在生产服务器上运行创建语句。

1

对于SQL 2K & 2K5,你要this tool

我问过类似的问题,前一段时间,并得到了迈克·L此建议(给他票here)。

+0

伟大的工具...不是真的我在找什么。谢谢您的帮助 – Chris 2008-12-18 18:22:58

0

如果像我一样,你必须应对的文件夹层次结构中的一堆SQL文件,这一个邮轮将它们组合成所谓的单个文件out.sql您可以在SQL Management Studio中容易执行。它只包含以.sql结尾的文件,并忽略诸如* .sqlsettings之类的文件。

从.sql文件层次结构的根文件夹运行它。确保你在out.sql中没有任何价值,因为它将被替换。

del out.sql && for /f %f in ('dir /b /s ^| findstr /E \.sql') do type %f >> out.sql 
1
  1. 右击数据库从那里你要传输的数据
  2. 选择数据传输
  3. 选择存储过程(你想调一下)
  4. 选择要传输数据的位置(在服务器或本地主机或任​​何文件上)