SSIS包的三种调用方式

 

编写简单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"'

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值