SSIS临时表错误

时间:2015-08-14 06:53:40

标签: ssis

我有SP包含临时表并在输出中生成4列 如 id,name,original和changed 输出需要保存在平面文件中。

任何人都可以建议如何使用执行SQL任务。

我尝试使用oledb将数据访问模式作为SQL命令。但是收到错误 0x80040E14。

任何人都可以提出建议。 感谢

1 个答案:

答案 0 :(得分:0)

借用here的答案,您可以使用WITH RESULT SETS预先告知SSIS引擎存储过程将返回哪些数据。

  

使用此程序:

CREATE PROCEDURE dbo.UseTempTable
AS
BEGIN
    SET NOCOUNT ON;

    CREATE TABLE #MyTable(WhoCares INT NOT NULL IDENTITY(1,1) PRIMARY KEY, Whatever VARCHAR(99));

    INSERT INTO #MyTable(Whatever) VALUES('Minger');
    INSERT INTO #MyTable(Whatever) VALUES('Bonjour');

    SELECT ColInt = WhoCares
        ,  ColVarChar = Whatever
        FROM #MyTable


END;
     

如果我尝试将其用作数据源,我会在SSIS 2012中收到错误   在数据流中。

     

在2012年之前,有各种各样的技巧可以表明"假装"记录   例如SET FMTONLY ON ... SET FMTONLY OFF但它们在2012年不起作用。

     

Phil's article开始,我们只需要指定数据流数据源   如

EXEC('EXEC dbo.UseTempTable') 
    WITH RESULT SETS
    ( ( ColInt INT NOT NULL, ColVarChar VARCHAR(99)) )

更多信息:link