zoukankan      html  css  js  c++  java
  • [转]SSIS包的调用方式

    本文转自:http://www.cnblogs.com/lijun4017/archive/2008/12/04/1347701.html

    编写简单SSIS包光看MSDN应该就问题不大了,最近几天几个朋友来问我SSIS的调用问题,然后想起我当初实现调用SSIS包的问题的时候也走了不少弯路,确实这方面的资料网上很少.下面我总结了一下,大概分为这么三类吧.

    1.使用sqserver2005的代理服务来新建作业来执行包任务;

    2.使用编程语言来实现包的调用,比如c#或者vb.net等;

    3.使用存储过程或者sql语句来调用包;

    下面我们一个一个展开讲一下:

    1.使用代理服务的方式

    我认为这种是调用SSIS包最方便的方式,我的BI项目中基本上都是采用这种方式的.

    sqlserver2005安装完毕默认代理服务是禁用的,在"SQL Server Configuration Manager"里面把他给开启;

    然后在sqlserver对象资源管理器里面找到sqlserver代理

    然后新建作业

    新建作业步骤,指定所在服务器,选择包以及一些包的配置信息等

    新建作业计划,指定作业的执行周期

    还有下面的警报和通知功能也是很有用的功能,这里我就不演示了.

    2.使用编程语言调用

    这种方式和下面的方式的原理其实也都一样,就是利用dtexec 这个包执行工具来运行包.

    行包时,dtexec 可能会返回退出代码。使用该退出代码填充 ERRORLEVEL 变量,然后可以在批处理文件的条件语句或分支逻辑中测试该变量的值。下表列出了 dtexec 实用工具退出时可以设置的值。

    0

    已成功执行包。

    1

    包失败。

    3

    用户取消了包。

    4

    实用工具找不到请求的包。无法找到包。

    5

    实用工具无法加载请求的包。无法加载包。

    6

    实用工具的命令行中有内部语法错误或语义错误。

    System.Diagnostics.Process.Start("dtexec.exe","C:\UpsertData.dtsx");

    当然其他参数可以自己指定,关于dtexec的参数请参考MSDN

    3.使用存储过程或者sql语句调用包

     可以从 xp_cmdshell 提示符下运行 dtexec。以下示例显示如何运行名为 UpsertData.dtsx 的包并忽略返回代码:

    EXEC xp_cmdshell 'dtexec /f "C:UpsertData.dtsx"'

    
    

    以下示例显示如何运行相同的包并捕获返回代码:

    DECLARE @returncode int
    EXEC @returncode = xp_cmdshell 'dtexec /f "C:UpsertData.dtsx"'
  • 相关阅读:
    性能测试流程各阶段的工作
    利用jquery插件在客户端计算“过了多少时间”
    服务器×××上的MSDTC不可用解决办法
    SignalR server push 利器
    win8下vs2012中TFS更换用户的问题
    在Share Point 2010 中针对相应用户赋某一个list中的item相关权限
    .NET C#教程初级篇 11 基本数据类型及其存储方式
    新手日记
    shell脚本格式化
    干掉 Postman?测试接口直接生成API文档,ApiPost真香!
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3573776.html
Copyright © 2011-2022 走看看