【问题标题】:Copy Stored procedure from One server to another using flatfile使用平面文件将存储过程从一台服务器复制到另一台服务器
【发布时间】:2013-04-16 18:24:38
【问题描述】:

我有一种情况,我需要每天将存储过程从一台服务器复制到另一台服务器。我不能使用传输 SQL 对象任务,因为这些服务器没有链接。我正在寻找一种解决方案,例如将过程导出到文本文件并从文本文件导入到目的地。谁能帮我这个? 我希望通过 SSIS 来完成这项工作,因为我已经有一个每天在这两个服务器之间转换数据的包。

【问题讨论】:

    标签: sql-server-2005 ssis


    【解决方案1】:
    1. 使用 SQL Server Management Studio 登录到服务器 A。
    2. 在左侧树中找到存储过程,右键生成CREATE脚本
    3. 在目标数据库中运行脚本

    【讨论】:

    【解决方案2】:

    我认为我们可以这样做:

    1. 执行 SQL 任务:使用 ADO.NET 运行“sp_helptext YourSPName”(它将存储过程的定义作为单列表结果返回)。将“完整结果集”保存到对象类型变量,例如“结果集”。

    2. 脚本任务:以只读方式传入“ResultSet”。创建另一个变量,比如“SPConent”类型的字符串,作为读写传递。在脚本内部,使用以下代码将存储过程定义重新组装成字符串

      public void Main()
      {
          // TODO: Add your code here
          var table = ((DataSet) Dts.Variables["ResultSet"].Value).Tables[0];
          string spContent = "";
      
          foreach (DataRow row in table.Rows)
          {
              spContent += row[0];
          }
      
          Dts.Variables["SPContent"].Value = spContent;
          Dts.TaskResult = (int)ScriptResults.Success;
      }
      
    3. 执行 SQL 任务:删除目标数据库中的存储过程。

    4. 执行 SQL 任务:从“SPContent”对目标数据库运行 sql 命令。

    【讨论】:

      猜你喜欢
      • 2014-05-17
      • 2016-10-18
      • 1970-01-01
      • 2016-02-26
      • 2021-06-22
      • 2013-12-03
      • 2018-07-08
      • 1970-01-01
      • 2020-06-18
      相关资源
      最近更新 更多