[转]SSIS中OLE DB Source中如何执行Store Procedure 以得到源数据
本文转自:http://www.cnblogs.com/michaelxu/archive/2009/10/16/1584284.html
有很多人喜欢在OLE DB Source中执行Store Procedure,以得到源数据。但我们经常会遇到这样的情况,在OLE DB Source的Sql Command中写好执行Store Procedure的语句后,可以正常Preview,但是当点到Columns标签时,却看不到Store Procedure返回来的结果集,就是说没有columns显示。
解决办法步骤:
1) 确保Store Procedure的最后一句是select语句,即有结果集返回
2) 在Store Procedure的开头部分加上SET NOCOUNT ON,不返回计数(表示受 Transact-SQL 语句影响的行数)。 例如:
CREATE PROCEDURE [dbo].[sp_test_Icon]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
…
select number, name from #t2 --这句返回结果集
END
GO
3) 在OLE DB Source的Sql Command中执行Store Procedure的前面加上SET FMTONLY OFF,例如:
SET FMTONLY OFF
EXEC [dbo].sp_procedure1
顺便提一下,当把FMTONLY设置成ON时,只将元数据(列信息)返回给客户端,而不返回实际的行,一般用于用于测试响应的格式,而不必实际执行查询。所以这里我们要把它设成OFF。
这样就能够在Columns标签中看到Store Procedure返回的结果集了。
最新文章
- Who is using Asio?
- 深入理解 AngularJS 的 Scope
- [Phalcon-framework] Phalcon framework - Dependency Injection/Service Location And the MVC architecture note 1
- iOS学习之C语言内存管理
- myeclipse 10 优化
- 异常-JAVA
- Python之路,Day22 - 网站用户访问质量分析监测分析项目开发
- Struts2配置拦截器自定义栈时抛异常:Unable to load configuration. - interceptor-ref - file:/D:/tomcat_install/webapps/crm/WEB-INF/classes/struts.xml
- Redis协议规范(RESP)
- UI设计学习之工具中的色彩模式分析
- 使用CloneDB克隆数据库
- 【Linux】ssh建立隧道tunnel连接到内网设备
- React 回忆录(二)为什么使用 React?
- PHP中使用CURL模拟登录并获取数据实例
- 设置debian6源
- Java 学习笔记 ------第二章 从JDK到IDE
- 使用nginx反向代理进行负载均衡
- 二叉树的二叉链表存储结构及C++实现
- Git学习系列 (一)
- 具体数学数论章-----致敬Kunth