【问题标题】:Import Existing Stored Procedures In SQL Server在 SQL Server 中导入现有存储过程
【发布时间】:2010-09-27 13:44:19
【问题描述】:

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

TIA! 克里斯

【问题讨论】:

    标签: sql-server stored-procedures import generate-scripts


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      对于 SQL 2K 和 2K5,您需要 this tool

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

      【讨论】:

      • 很棒的工具...虽然不是我真正想要的。感谢您的帮助
      【解决方案3】:
      1. 右键单击要从中传输数据的数据库
      2. 选择数据传输
      3. 选择 TablesStore Procedure(您要传输的内容)
      4. 选择您要传输数据的位置(在服务器或本地主机或任​​何文件上)

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            如果像我一样,您必须处理文件夹层次结构中的一堆 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-02-19
              • 2016-05-30
              • 2018-11-18
              • 1970-01-01
              • 1970-01-01
              • 2018-10-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多