Sql 如何将带参数的存储过程转换为ETL并将数据加载到表中
我正在执行一项任务,我需要将一个复杂的存储过程转换为ETL,但这里的复杂性在于,SP有五个参数,因此我应该如何将SP转换为ETL并将数据加载到DW中的表?我会使用合并脚本将数据加载到DW中,如果您愿意,我可以编写合并脚本。使用此过程,它应该可以工作。将结果从Sp获取到临时表中,并使用临时表进行合并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
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中的一个表