Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 2008 针对表中的所有记录运行存储过程_Sql Server 2008_Loops_Stored Procedures_Cursor - Fatal编程技术网

Sql server 2008 针对表中的所有记录运行存储过程

Sql server 2008 针对表中的所有记录运行存储过程,sql-server-2008,loops,stored-procedures,cursor,Sql Server 2008,Loops,Stored Procedures,Cursor,我正在尝试创建一个SSIS包,从Oracle源中提取数据,插入到目标表中,然后根据处理数据的存储过程运行该数据 存储过程具有以下变量: @ShiftID Varchar (50), @ProcedureID int, @Registered int, @Performed int, @Deferred int, @Collected int, @QNS int, @Deleted int, @Intent int, @APH int, @ResultError int output, @R

我正在尝试创建一个SSIS包,从Oracle源中提取数据,插入到目标表中,然后根据处理数据的存储过程运行该数据

存储过程具有以下变量:

@ShiftID Varchar (50),
@ProcedureID int,
@Registered int,
@Performed  int,
@Deferred  int,
@Collected  int,
@QNS int,
@Deleted int,
@Intent int,
@APH int,
@ResultError int output,
@ResultMessage varchar(1024) output
我要对其运行该过程的表包含以下列:

Shift_ID
ProcedureID
Registered
Performed
Deferred
Collected
QNS
Deleted
APH
现在我在表中有大约500条记录,我想对所有记录运行这个过程,但我不确定如何执行这个任务

如何将变量分配给表中的特定列,然后让它在整个表中循环或游标


谢谢,

您可以在从ssis包插入行的暂存表上使用after Insert触发器

像这样--

CREATE TRIGGER [dbo].[TriggerName] ON [dbo].[yourTableName]
AFTER INSERT
AS
DECLARE @ShiftID VARCHAR(50)
    ,@ProcedureID INT
    ,@Registered INT
    ,@Performed INT
    ,@Deferred INT
    ,@Collected INT
    ,@QNS INT
    ,@Deleted INT
    ,@Intent INT
    ,@APH INT

BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    SELECT @ShiftID = ins.ShiftID
        ,@ProcedureID = ins.ProcedureID
        ,@Registered = ins.Registered
        ,@Performed = ins.Performed
        ,@Deferred = ins.Deferred
        ,@Collected = ins.Collected
        ,@Pincode = ins.Pincode
        ,@QNS = ins.QNS
        ,@Deleted = ins.Deleted
        ,@Intent = ins.Intent
        ,@APH = ins.APH
    FROM inserted ins

    -- TODO: Set parameter values here.
    EXECUTE [your Proc Name] @ShiftID
        ,@ProcedureID
        ,@Registered
        ,@Performed
        ,@Deferred
        ,@Collected
        ,@QNS
        ,@Deleted
        ,@Intent
        ,@APH
        -- Insert statements for trigger here
END
GO