안녕하세요.
mssql 2008 r2에서
아래와 같은 기본적인 트리거를 생성하였습니다.
CREATE TRIGGER [dbo].[TEST_TRIGGER] ON [TEST_DB].[dbo].[TEST_TABLE]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON
DECLARE @idx int
select @idx=idx from inserted
EXEC TEST_DB.dbo.TEST_PROC @idx
SET NOCOUNT OFF
END
해당 테이블에 insert작업이 들어갔을때 트리거에서 호출한 프로시저에서 에러가 발생하면
테이블에 insert 작업도 수행이 안되더군요.
프로시저에서 에러가 발생하여도 테이블에는 데이터가 insert되게 하고 싶은데 방법이 없을까요?
Comment 7
-
항해자™
2016.04.27 18:43
before 트리거를 쓰시면 됩니다,, -
디비는어려워요
2016.04.27 18:59
ms-sql에서 before 트리거 사용 방법을 좀 알려주실수 있으실까요^^?
-
항해자™
2016.04.27 19:02
insted of 일꺼에요,, -
항해자™
2016.04.27 19:03
https://technet.microsoft.com/ko-kr/library/ms175089(v=sql.105).aspx -
디비는어려워요
2016.04.27 19:14
답변 갑사합니다.^^ AFTER INSERT 대신 INSTEAD OF INSERT 사용 했는데도 똑같이 insert는 안되네요. ㅠㅠ;
-
항해자™
2016.04.27 21:33
그렇다면 트랜젝션이 있나보죠,, 프로시저 등에서 데이터를 넣는다면 try catch 에서 처리 해야 합니다,, -
디비는어려워요
2016.04.28 10:35
네 try catch로 해결 하였네요.^^ 답변 감사합니다.~