导入现有的存储过程到SQL Server

5

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

TIA! Chris

6个回答

11

哎呀,你使用了一种麻烦的方式生成脚本。你应该通过在 SSMS 中右键单击数据库,选择“任务”->“生成脚本”,创建一个包含所有存储过程的单个脚本。

但是,如果你不想再次执行那个过程,可以在文件夹中打开 cmd shell 并回忆那些旧的批处理文件的日子:

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

这应该就可以了!如果需要,您还可以添加其他参数到sqlcmd中(例如登录、密码、服务器名称等)。要查看开关列表,只需执行 sqlcmd -h 命令即可。


1

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

我之前问过类似的问题,得到了Mike L的建议(在这里给他投票here)。


很棒的工具...不过并不是我正在寻找的。感谢你的帮助。 - Chris

1
  1. 右键单击要传输数据的数据库
  2. 选择 数据传输
  3. 选择要传输的 表格存储过程
  4. 选择您要传输数据的位置(可以是服务器、本地主机或任何文件)

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

0

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

然后只需在开发环境中运行该查询即可。


0

我不知道是否有命令行的方式来做到这一点,但如果你把它们都放在文本文件中,编写一个快速而简单的应用程序只需要循环遍历所有文件,并使用你选择的任何语言在生产服务器上运行创建语句,这应该不难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接