zoukankan      html  css  js  c++  java
  • [转]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返回的结果集了。

  • 相关阅读:
    HTML超文本标记语言(八)——表单<form>
    如何理解JavaScript中给变量赋值,是引用还是复制
    PostCSS 实战
    sass 工具库
    微信小程序-制作简易豆瓣笔记
    学习pano2vr制作html5全景笔记
    git命令笔记
    Gulp实战
    html5-离线存储
    html5
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3582584.html
Copyright © 2011-2022 走看看