我正在使用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参数。
所以我需要以某种方式在运行之前将此过程中给出的@Country传递给包。 该包存储在Integration Services SQL Server 2008中,因此我无法使用catalog.create_execution或cmd。有关于此的任何想法?是使用C#的唯一解决方案吗?
非常感谢。
答案 0 :(得分:1)
没有办法做到这一点。您可以从SSIS配置中读取(在被调用的proc中,请参阅:
http://blogs.lessthandot.com/index.php/datamgmt/dbprogramming/execute-ssis-from-sql/)
或者将值存储到调用的proc读取的表中,然后使用proc中的读取变量。