【问题标题】:Running a Stored Procedure against all records in a table对表中的所有记录运行存储过程
【发布时间】:2015-05-06 18:38:29
【问题描述】:

我正在尝试创建一个 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 条记录,我想对所有记录运行此过程,但我不确定如何执行此任务。

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

谢谢,

【问题讨论】:

    标签: sql-server-2008 loops stored-procedures cursor


    【解决方案1】:

    您可以在从 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多