2017-01-31 4 views
0

я создал триггер, который будет выполнять хранимую процедуру INSERT:Выполнение хранимой процедуры в триггер в SQL-сервер с параметрами

USE [DB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER TRIGGER [dbo].[trigger_name] ON [dbo].[table_name] 
    AFTER INSERT AS 
    BEGIN 
    SET NOCOUNT ON 
    EXEC procedure_name_exec param1, param2, param3 
    END 

, что я хочу добиться того, чтобы выполнить хранимую процедуру с параметрами, представляют строку, которая была только что вставлена ​​и которая в основном вызвала этот триггер.

+0

благодарит за редактирования @TheGameiswar – Claritta

+1

Поскольку параметры должны быть значения из строки (ами), которые вставленной вы здесь придется использовать цикл, потому что вставленная таблица может иметь и иметь более 1 строки. Вы должны будете вызвать эту процедуру для каждой строки. –

+0

Мне не нужен цикл, триггер должен выполнять процедуру каждый раз, когда вставлена ​​строка. – Claritta

ответ

-2

Вот что искал и дал мне результат, который я искал:

USE [DB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER TRIGGER [dbo].[trigger_name] ON [dbo].[table_name] 
    AFTER INSERT AS 
    BEGIN 
    SET NOCOUNT ON 
    declare @var1 DATETIME 
    SELECT @var1 = inserted.[column name] 
    FROM inserted 

    EXEC procedure_name_exec @var1 
    END 
+0

Это ошибочно логически, потому что вставленная таблица таблица, а не набор скалярных значений. Если то, что вы извлекаете из процедуры, имеет отношение к данным строки, тогда у вас есть серьезная проблема в вашем коде здесь. –

 Смежные вопросы

  • Нет связанных вопросов^_^