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

문제는 SELECT 문에 .I 썼다 @ITEMMODEL했다.

1

트리거는 클라이언트에 관계없이 실행됩니다. Sql Profiler를 사용하여 실행중인 Sql을 프로파일 링해야합니다. 또한 Management Studio에서 TSQL 코드를 직접 실행하여 어떤 일이 발생하는지 확인하십시오.

0

한 가지 방법은 먼저 SQL 데이터베이스에서 트리거를 테스트하는 것입니다. 스크립트 (올바른 것으로 보이는)를 사용하여 트리거를 만든 다음 Sales 테이블에 데이터를 추가하고 Sales 및 item_details 테이블의 데이터가 업데이트되는지 확인하십시오. 방아쇠가 작동하고 올바르게 채워지는 것을 알게되면 C#을 호출하여 Sales 테이블에 새 레코드를 삽입하십시오. Sales 테이블에 새 행을 삽입하면 트리거가 자동으로 실행됩니다.

SELECT @ITEMMODEL = ITEM_MODEL FROM inserted 

을하고 지금은 잘 작동 :

+0

@ mbonney..Trigger는 SQL에서 잘 작동합니다. – user3262450

관련 문제