5

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

蒂亚!克里斯

4

6 回答 6

11

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

但是,如果您不想再次执行该过程,请在文件夹中打开一个 cmd shell 并记住那些旧的批处理文件天:

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

这应该可以解决问题!如果需要,您可以向 sqlcmd 添加其他参数(即登录名、密码、服务器名称……)。要查看开关列表,只需执行sqlcmd -h.

于 2008-12-18T17:29:11.533 回答
1

对于 SQL 2K 和 2K5,您需要这个工具

不久前我问了一个类似的问题,并从 Mike L 那里得到了这个建议(在这里给他投票)。

于 2008-12-18T18:05:55.563 回答
1
  1. 右键单击要从中传输数据的数据库
  2. 选择数据传输
  3. 选择存储过程(您要传输的内容)
  4. 选择要传输数据的位置(在服务器或本地主机或任​​何文件上)
于 2011-09-12T05:35:21.113 回答
0

右键单击开发数据库点击生成 SQL 脚本,然后只选择存储的程序。如果您需要额外的过滤,您甚至可以选择您不想要的存储过程。

然后只需在开发中运行该查询。

于 2008-12-18T17:32:00.623 回答
0

我不知道是否有命令行方法可以做到这一点,但如果你将它们全部放在文本文件中,编写一个快速而肮脏的应用程序,它只循环所有文件,并且使用您选择的任何语言在您的生产服务器上运行创建语句。

于 2008-12-18T17:34:37.437 回答
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
于 2011-06-30T16:46:01.150 回答