2010-07-05 2 views
1

SQL Server 2008에서 트리거를 만들려고합니다. 테이블에 새 필드 값 업데이트 필드가 있으면 다른 테이블에 업데이트 할 수 있습니다. 이 트리거에 대한 코드입니다 : 나는 테이블 로그 triger 업데이트 테이블 문서의 필드를 업데이트 할 수 있지만이 NULL을 삽입 업데이트 트리거 삽입 Null

Create TRIGGER dbo.DocSt 
    ON dbo.log 
    AFTER UPDATE 
IF (SELECT COUNT(*) FROM inserted) > 0 
    BEGIN 
     IF (SELECT COUNT(*) FROM deleted) > 0 
     BEGIN 
      UPDATE [dbo].[Doc] 
    SET 
     [ID_user] = (select ID_user from inserted) 
WHERE 
IDN= (select id_doc from inserted) 
     END 
     END 

. 내가 뭘 잘못하고있어? 감사!

답변

1

이 코드는 작동하지 않습니다. UPDATE 문에서 10 행을 업데이트합니까? 이 선택주고 당신에게 무엇을 : 당신은 SELECT 문에서 설정 전체 수익에 하나의 값을 설정하려는

SET [ID_user] = (select ID_user from inserted) 

- 분명히 작동하지 않습니다. ID_user 열을, 당신이 그것에 테이블 dbo.Doc에 가입하고 Inserted의 각 항목에 대해,

CREATE TRIGGER dbo.DocSt 
    ON dbo.log AFTER UPDATE 

    UPDATE [dbo].[Doc] 
    FROM Inserted i 
    SET [ID_user] = i.ID_User 
    WHERE IDN = i.id_doc 

그 방법과 업데이트 :

당신은 Inserted 의사 테이블과 조인 UPDATE 문을 작성해야 .