2014-05-21 2 views
0

INSERT 전에 사용되는 하나의 테이블에 대한 트리거를 만들고 싶습니다."삽입 전"트리거 생성

두 열이 NULL인지 확인하고 싶으면 NULL 오류가 발생하면 INSERT 데이터를 확인하십시오.

CREATE TRIGGER INS_TABLE_1 
ON mytable 
FOR INSERT 
AS 
BEGIN 

    IF (column1 IS NULL OR column2 IS NULL) 
    BEGIN 
     RAISERROR ('You are not allowed to Add These Data.', 10, 11) 
    END 
    ELSE 
     INSERT INTO mytable (column1,column2,column3) 
END 

당신이 날 도와주세요 수 :

지금까지 나는이 있나요?

+0

SQL Server에는 'BEFORE INSERT'트리거가 없습니다. 'ON INSERT' (이것은'AFTER INSERT'와 동일합니다), 또는'INSERT' 대신에 트리거를 가질 수 있습니다. –

+1

필드를 null로하고 싶지 않은 경우 필드를 null 허용하는 이유는 무엇입니까? – Stijn

+0

예.하지만 직접 오류를 발생시키고 싶습니다. – user3393046

답변

1

아래와 같이 instead triggerinserted table을 사용하고 시도해보십시오.

CREATE TRIGGER INS_TABLE_1 
ON mytable 
INSTEAD OF INSERT 
AS 
BEGIN 
    DECLARE @fn varchar(50),@ln varchar(50) 
    SELECT @fn=column1 ,@ln=column12 from inserted 
    IF (@fn IS NULL OR @ln IS NULL) 
    BEGIN 
     RAISERROR ('You are not allowed to Add These Data.', 10, 11) 
    END 
    ELSE 
     INSERT INTO mytable (column1 ,column2) values (@fn,@ln) 
END 

INSERTUPDATE 및 문 중 해당 행의 삽입 테이블에는 복사. 트리거 대신 현재 트리거를 트리거 정의로 바꿉니다.