[转]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"'
最新文章
- Oracle修改字段类型方法总结
- Hibernate不能自动建表解决办法
- Android开发小问题总结
- gRPC Java的代码架构
- python 字符串查找
- buildroot httpd php
- Spring3.0 AOP 具体解释
- IIS服务器设置造成引用第三方权限不足问题
- python 多线程爬虫
- 帝国cms7.2自定义列表建立tag效果 代码 教程
- MSSQL - Sqlcommand
- Android 开发笔记___Activity的生命周期
- luogu P2071 座位安排
- c#基础之异常处理及自定义异常
- 《Linux内核分析》期终总结&;《Linux及安全》期中总结
- Error: MDM failed command. Status: Only a single SDC may be mapped to this volume at a time
- border-color: transparent rgb(255, 48, 48) transparent transparent;
- 关于Java高并发的问题
- Sensor Fusion-based Exploration in Home Environments using Information, Driving and Localization Gains(基于传感器融合的使用信息、驾驶和定位增益在家庭环境中的探索)
- 两步实现在Git Bash中用Sublime打开文件