Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SSIS中执行6条SQL语句_Sql Server_Ssis - Fatal编程技术网

Sql server 在SSIS中执行6条SQL语句

Sql server 在SSIS中执行6条SQL语句,sql-server,ssis,Sql Server,Ssis,要实现我的目标表,唯一的方法是通过6条SQL语句。它们必须按顺序执行,也就是说1、2、3……6。在这个过程中,我使用了5个所谓的“临时/居民表”。SSIS中是否有任何语句?我只想知道是否可以在SSIS中重用这6条语句。表示运行这6条语句的流程。可能吗?如果是这样的话,介意指导我怎么做吗?控制流中包含什么,数据流中包含什么 谢谢, 10e5x我怀疑您将问题复杂化了,您可以将所有6条语句放入一个“执行SQL任务”控制流项中,或者您可以将它们全部放入一个存储过程中,SQL语句的顺序正确,并通过“执行S

要实现我的目标表,唯一的方法是通过6条SQL语句。它们必须按顺序执行,也就是说1、2、3……6。在这个过程中,我使用了5个所谓的“临时/居民表”。SSIS中是否有任何语句?我只想知道是否可以在SSIS中重用这6条语句。表示运行这6条语句的流程。可能吗?如果是这样的话,介意指导我怎么做吗?控制流中包含什么,数据流中包含什么

谢谢,

10e5x

我怀疑您将问题复杂化了,您可以将所有6条语句放入一个“执行SQL任务”控制流项中,或者您可以将它们全部放入一个存储过程中,SQL语句的顺序正确,并通过“执行SQL任务”来执行

就我个人而言,我会将它们放入一个存储过程中


数据流用于数据,即移动数据块,控制流用于控制操作顺序,其中一个或多个可能是数据流。

我怀疑您将问题复杂化了,您可以将所有6条语句放入一个“执行SQL任务”控制流项中,或者您可以将它们以正确的顺序放入一个包含SQL语句的存储过程中,并通过“执行SQL任务”来执行

就我个人而言,我会将它们放入一个存储过程中


数据流用于数据,即移动数据块,控制流用于控制操作顺序,其中一个或多个可能是数据流。

您可以使用通用表表达式将6条相互依赖的SQL语句组合成一条。例如,我只显示了3个表,C1、C2、C3和最终select语句。别忘了结尾的分号

WITH C1 AS
(
  SELECT Col1,Col2,Col3
  FROM Table1
),
C2 AS
(
  SELECT Col1, count(Col1) as numOfCol1
  FROM C1
  GROUP BY Col1
),
C3 AS
(
  Select substring(Col1,1,10) as FirstName, substring(Col1,10,10) as LastName, numOfCol1
  FROM C2
),
SELECT *
FROM C3
WHERE numofCol1 > 10;

您可以使用通用表表达式将6条相互依赖的SQL语句组合成一条。例如,我只显示了3个表,C1、C2、C3和最终select语句。别忘了结尾的分号

WITH C1 AS
(
  SELECT Col1,Col2,Col3
  FROM Table1
),
C2 AS
(
  SELECT Col1, count(Col1) as numOfCol1
  FROM C1
  GROUP BY Col1
),
C3 AS
(
  Select substring(Col1,1,10) as FirstName, substring(Col1,10,10) as LastName, numOfCol1
  FROM C2
),
SELECT *
FROM C3
WHERE numofCol1 > 10;

您是否已经创建了这些临时表,或者需要动态创建它们?你在这里面临的复杂性是什么?我想这是在进行中。例如,sql1将派生temp1,sql2将使用temp1派生2…sql6 wll,然后使用temp5派生我的目标表。有什么建议吗?检查下面的CTE示例。您是否已经创建了这些临时表,或者需要动态创建它们?你在这里面临的复杂性是什么?我想这是在进行中。例如,sql1将派生temp1,sql2将使用temp1派生2…sql6 wll,然后使用temp5派生我的目标表。有什么建议吗?请查看下面的CTE示例。真正的SSIS不喜欢临时表。但前提是您希望它们在任务之间保持不变。这显然是可行的,当然只是一团糟。然而,我没有建议尝试在任务之间持久化临时表。如果OP将他的脚本放在一个SQL任务中,它就会工作得很好。这就是为什么我同意使用存储过程的原因。谢谢你澄清我的观点。大家好,你们所有的解决方案听起来都很合乎逻辑。所以我想我应该把它们放在存储过程中。当前临时表是动态创建的,例如sql1将派生temp1,sql2将使用temp1派生temp2。如何在SSIS中优化这种流?V.true SSIS不喜欢临时表。但前提是您希望它们在任务之间保持不变。这显然是可行的,当然只是一团糟。然而,我没有建议尝试在任务之间持久化临时表。如果OP将他的脚本放在一个SQL任务中,它就会工作得很好。这就是为什么我同意使用存储过程的原因。谢谢你澄清我的观点。大家好,你们所有的解决方案听起来都很合乎逻辑。所以我想我应该把它们放在存储过程中。当前临时表是动态创建的,例如sql1将派生temp1,sql2将使用temp1派生temp2。如何在SSIS中优化这种流?