2011-08-05 2 views
0

Возможно ли, что внутри ВХОДА ВСТАВИТЬ И ПОСЛЕ ВСТАВКИ внутри одного и того же триггера?Как я могу ВМЕСТО ВСТАВКИ И ПОСЛЕ ВСТАВКИ внутри одного и того же триггера? (sql server)

CREATE TRIGGER tgInsertCompare 
    ON trigger_insert_teste 
    INSTEAD OF INSERT 
    AS 
     DECLARE @testeID2 int 
     SET @testeID2 = (SELECT TOP 1 id FROM trigger_insert_teste ORDER BY id DESC) 
     PRINT(@testeID2) 
    GO 

    AFTER INSERT 
    AS 
    BEGIN 

    SET NOCOUNT ON; 

    DECLARE @testeID int 
    SET @testeID = (SELECT TOP 1 id FROM trigger_insert_teste ORDER BY id DESC) 
    PRINT(@testeID) 
    END 
    GO 

Использование SQL Server 2008.

+0

Этот вопрос написан, поэтому мы не можем вам помочь. Пожалуйста, включите код, который не настолько разложен, чтобы быть бессмысленным. Я не могу придумать никаких обстоятельств, где я хотел бы сделать вместо того, и после, за одним столом. Но из вашего примера я опасаюсь, что вы пишете триггер, предназначенный для обработки только одной записи за раз, которая является антиспамом sql и может вызвать проблемы с целостностью данных. – HLGEM

ответ

5

Нет, но зачем вам нужно? Если вы контролируете ввод самостоятельно (используя INSTEAD OF), вы должны иметь возможность добавить код AFTER INSERT в конец.

+0

@robinson Мне нужно получить идентификатор перед вставкой в ​​таблицу, а затем мне нужна новая вставка ID внутри таблицы, вы взяли? – soamazing

+0

@soamazing: Ваш код выше никогда не выполняет вставку. Как вы это делаете (будь то ручной идентификатор или идентификатор/идентификатор по умолчанию) должно быть просто выяснить, если вы можете предоставить более значимый пример. –

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