我使用SP来调用SSIS包,我之前使用的是
EXEC msdb.dbo.sp_start_job
。
问题是,当我调用那个包时,我需要传递一个参数,但我不能这样做。示例如下:
ALTER PROCEDURE [dbo].[Clawback]
@Country CHAR(2)
, @StartDate DATETIME
, @EndDate DATETIME
AS
BEGIN
BEGIN TRY
TRUNCATE TABLE [dbo].[ClawbackConfig]
INSERT INTO [dbo].[ClawbackConfig]
(
Country
,StartDate
,EndDate
) VALUES (
@Country
,@StartDate
,@EndDate
)
EXEC msdb.dbo.sp_start_job N'ExecuteJob'
此存储过程用于使用所需的日期和国家运行提取,这些值存储在一个表中,并在通常的增量过程中使用。
我想提一下,我们的想法是对增量+回拨使用相同的包,而增量流程需要国家参数。
因此,在包运行之前,我需要以某种方式将此过程中给出的@Country传递给包。该包存储在Integration Services SQL Server2008中,因此我无法使用catalog.create_execution或cmd。对此有什么想法吗?是使用C#的唯一解决方案吗?
非常感谢。
发布于 2016-09-19 13:02:33
没有办法做到这一点。您可以从SSIS配置中读取(在调用的proc中,请参阅:
http://blogs.lessthandot.com/index.php/datamgmt/dbprogramming/execute-ssis-from-sql/)
或者将值存储到被调用的proc读取的表中,然后在proc中使用读取的变量。
https://stackoverflow.com/questions/39571306
复制