데이터베이스
[SQL서버] 트리거에서 RAISERROR 발생 시키면?
해나
2015. 1. 13. 01:05
반응형
트리거 내에서 RAISERROR 로 오류를 생성 할 경우, 심각도(severity)가 20~25인 경우에는
자동으로 rollback 처리 된다.
(예)
CREATE TABLE Test1
(number INT IDENTITY,
bookname nvarchar(100),
UnitPrice INT,
Qty INT,
Price INT
)
CREATE TRIGGER TR_Test1_INSERT
ON Test1
FOR INSERT
AS
update Test1
Set Price = (select UnitPrice from inserted) * (select Qty from inserted)
where number = (select number from inserted)
RAISERROR ('Error raised!', -- Message text.
20, -- Severity.
1 -- State.
) with log;
insert into Test1 (bookname, UnitPrice, Qty)
values ('book1', 600, 2)
반응형