我从生产中恢复了我的开发数据库,而我的开发环境中需要的存储过程在我的生产数据库中不存在。Ii 是否可以使用命令将developmetn 存储过程导入回SQL Server。大约有 88 个文件,因为每个过程都在不同的文本文件中。
蒂亚!克里斯
我从生产中恢复了我的开发数据库,而我的开发环境中需要的存储过程在我的生产数据库中不存在。Ii 是否可以使用命令将developmetn 存储过程导入回SQL Server。大约有 88 个文件,因为每个过程都在不同的文本文件中。
蒂亚!克里斯
哎呀,你做了很痛苦的方式来生成脚本。您应该通过右键单击 SSMS 中的数据库,选择任务 -> 生成脚本来为所有过程创建一个脚本。
但是,如果您不想再次执行该过程,请在文件夹中打开一个 cmd shell 并记住那些旧的批处理文件天:
for %f in (*.sql) do sqlcmd -i %f
这应该可以解决问题!如果需要,您可以向 sqlcmd 添加其他参数(即登录名、密码、服务器名称……)。要查看开关列表,只需执行sqlcmd -h
.
右键单击开发数据库点击生成 SQL 脚本,然后只选择存储的程序。如果您需要额外的过滤,您甚至可以选择您不想要的存储过程。
然后只需在开发中运行该查询。
我不知道是否有命令行方法可以做到这一点,但如果你将它们全部放在文本文件中,编写一个快速而肮脏的应用程序,它只循环所有文件,并且使用您选择的任何语言在您的生产服务器上运行创建语句。
如果像我一样,您必须处理文件夹层次结构中的一堆 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