如何将这 3 个 SQL 作业合并到一个 SSIS 包中?
How do I combine these 3 SQL jobs into a single SSIS package?
我正在使用 SQL Server 2012
。我目前在我的数据库中有 3 个作业 运行 使用 T-SQL
查询。我想将所有这 3 个 SQL 作业分组到一个 SSIS
包中,每个作业在 SSIS
包中分配一个特定步骤。
我将使用 SSDT
创建此程序包。我的 3 个工作的 T-SQL
查询如下:
作业 1:
SELECT
*
INTO dbo.table1
FROM
OPENDATASOURCE
(
'SQLOLEDB',
'Data Source=SourceServer;User ID=MyUser;Password=MyPass'
).SourceDatabase.dbo.SourceTable;
作业 2 和作业 3 与上面相同,只是要导入 table 个名称。
我是否需要为每个作业准备 3 个单独的 SSIS 包,然后将这 3 个 SSIS 包合并为一个最终的 SSIS 包?还有,我应该用哪个任务来实现这个?
您不必将您的工作分成单独的包,这对您的情况没有好处。出于维护原因,我会使用单个包。
只需将您的 T-SQL 命令文本放入 Execute SQL Task - here 是 Microsoft Docs 描述
SSIS 可以提供异常处理。比如说,如果 第 2 步 失败,那么 第 1 步 更改应该回滚。这可以通过将所有三个步骤按顺序排列并将其 TransactionSupport 属性 设置为 Required 来实现。这只是一个例子。
您可以像这样将所有这些都放在一个包中:
我只有一张便条 - 如果 Job 2
任务失败怎么办?整个事务应该回滚吗?如果是这样 - 您应该考虑使用 DataFlow task preceded by BEGIN TRANSACTION
and followed by COMMIT TRANSACTION
as described in this 文章。您还可以使用 Failure
任务来报告可能出现的问题。
此外,还有一件事 - 您在这里不需要 SSIS 包。创建一个 stored procedure
并像您现在所做的那样从一个简单的 T-SQL Job
调用这个过程怎么样?您可以在一个地方处理交易事宜。只是一个想法。
我正在使用 SQL Server 2012
。我目前在我的数据库中有 3 个作业 运行 使用 T-SQL
查询。我想将所有这 3 个 SQL 作业分组到一个 SSIS
包中,每个作业在 SSIS
包中分配一个特定步骤。
我将使用 SSDT
创建此程序包。我的 3 个工作的 T-SQL
查询如下:
作业 1:
SELECT
*
INTO dbo.table1
FROM
OPENDATASOURCE
(
'SQLOLEDB',
'Data Source=SourceServer;User ID=MyUser;Password=MyPass'
).SourceDatabase.dbo.SourceTable;
作业 2 和作业 3 与上面相同,只是要导入 table 个名称。
我是否需要为每个作业准备 3 个单独的 SSIS 包,然后将这 3 个 SSIS 包合并为一个最终的 SSIS 包?还有,我应该用哪个任务来实现这个?
您不必将您的工作分成单独的包,这对您的情况没有好处。出于维护原因,我会使用单个包。
只需将您的 T-SQL 命令文本放入 Execute SQL Task - here 是 Microsoft Docs 描述
SSIS 可以提供异常处理。比如说,如果 第 2 步 失败,那么 第 1 步 更改应该回滚。这可以通过将所有三个步骤按顺序排列并将其 TransactionSupport 属性 设置为 Required 来实现。这只是一个例子。
您可以像这样将所有这些都放在一个包中:
我只有一张便条 - 如果 Job 2
任务失败怎么办?整个事务应该回滚吗?如果是这样 - 您应该考虑使用 DataFlow task preceded by BEGIN TRANSACTION
and followed by COMMIT TRANSACTION
as described in this 文章。您还可以使用 Failure
任务来报告可能出现的问题。
此外,还有一件事 - 您在这里不需要 SSIS 包。创建一个 stored procedure
并像您现在所做的那样从一个简单的 T-SQL Job
调用这个过程怎么样?您可以在一个地方处理交易事宜。只是一个想法。