2014-02-18 2 views
0

Я работаю над системой управления запасами. Я хотел обновить две таблицы сразу после вставки в одну таблицу, поэтому я сделал это с помощью SQL. После запуска триггера, но этот триггер не стреляет из C#, который является интерфейсом моего приложения. I не знаю, как запустить триггер с C#. Может ли кто-нибудь помочь мне, поскольку я должен представить этот проект к воскресенью? Вот мой триггер SQL ..Sql триггер не запускается при использовании C#?

CREATE TRIGGER tbl_Sales_ForInsert 
ON SALES 
FOR INSERT 
AS 
BEGIN 



    DECLARE @ITEMMODEL varchar(100) 
     SELECT @ITEMMODEL = @ITEMMODEL FROM inserted 
     update SALES set PROFIT=TOTAL_PRICE - (SELECT QUANTITY FROM SALES WHERE [email protected]) * (SELECT RATE FROM ITEM_DETAILS WHERE [email protected]) WHERE [email protected] 
     UPDATE ITEM_DETAILS SET QUANTITY=QUANTITY-(SELECT QUANTITY FROM SALES WHERE [email protected]) WHERE [email protected] 
     UPDATE ITEM_DETAILS SET AMOUNT = AMOUNT - (SELECT RATE FROM ITEM_DETAILS WHERE [email protected]) * (SELECT QUANTITY FROM SALES WHERE [email protected]) where [email protected] 
    END 
+1

И это очень удобно, если вы вставляете новую запись на сервер? –

+2

Я бы проверял, срабатывает ли триггер, если вы вставляете вручную. Не пытайтесь делать все сразу. Изолируйте проблему, а затем перейдите к ней. – u84six

ответ

0

Проблема была @ITEMMODEL в ЗЕЬЕСТ .Я писал:

SELECT @ITEMMODEL = ITEM_MODEL FROM inserted 

и теперь он работает нормально.

1

Trigger должен стрелять независимо от клиента. Вы должны попытаться профилировать исполняемый Sql с помощью Sql Profiler. Кроме того, попробуйте выполнить свой TSQL-код непосредственно в Management Studio и посмотреть, что произойдет.

0

Один из подходов - сначала проверить ваш триггер в базе данных SQL. Создайте триггер, используя ваш скрипт (который выглядит правильно), затем добавьте некоторые данные в таблицу Sales и посмотрите, обновлены ли данные в таблицах Sales и item_details. Как только вы узнаете, что триггер работает и правильно заполняется, тогда работайте над вызовом C#, чтобы вставить новые записи в вашу таблицу продаж. Триггер автоматически срабатывает, как только вы вставляете новую строку в таблицу Sales.

+0

@ mbonney..Trigger работает отлично в sql – user3262450

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