Sql 如何将带参数的存储过程转换为ETL并将数据加载到表中

Sql 如何将带参数的存储过程转换为ETL并将数据加载到表中,sql,sql-server,Sql,Sql Server,我正在执行一项任务,我需要将一个复杂的存储过程转换为ETL,但这里的复杂性在于,SP有五个参数,因此我应该如何将SP转换为ETL并将数据加载到DW中的表?我会使用合并脚本将数据加载到DW中,如果您愿意,我可以编写合并脚本。使用此过程,它应该可以工作。将结果从Sp获取到临时表中,并使用临时表进行合并 CREATE PROCEDURE USP_ETLJOB AS BEGIN CREATE TABLE #temp1 ( col1 INT ,col2 INT

我正在执行一项任务,我需要将一个复杂的存储过程转换为ETL,但这里的复杂性在于,SP有五个参数,因此我应该如何将SP转换为ETL并将数据加载到DW中的表?

我会使用合并脚本将数据加载到DW中,如果您愿意,我可以编写合并脚本。

使用此过程,它应该可以工作。将结果从Sp获取到临时表中,并使用临时表进行合并

CREATE PROCEDURE USP_ETLJOB
AS
BEGIN
    CREATE TABLE #temp1 (
        col1 INT
        ,col2 INT
        ,col3 INT
        ,col4 INT
        )

    INSERT INTO #temp1
    EXEC usp_Inputproc @1
        ,@2
        ,@3
        ,@4;

    MERGE Destination AS target
    USING #Temp1 AS source
        ON target.col1(id) = source.col1(id)
    WHEN MATCHED
        THEN
            UPDATE
            SET target.col1 = source.col1
                ,target.col2 = source.col2
                , target.col3 = source.col3
                , target.col4 = source.col4
    WHEN NOT MATCHED BY TARGET
        THEN
            INSERT (
                col1
                ,col2
                ,col3
                , col4
                )
            VALUES (
                source.col1
                ,source.col2
                ,source.col3
                ,source.col4
                )
END

我已选择INT作为数据类型,您可以使用目标表中的任何数据类型

您的意思是说5个输入参数吗?因为SP是使用这些参数执行的,所以我不太确定如何将SP中的结果表映射到DW中的目标表,而不使用这些参数“将SP转换为ETL”甚至意味着什么?您想要的结果是什么?因为SP中有一个临时表,我希望将临时表映射到DW中的一个表