Q&A

  • 좀 도와주십시요...
DECLARE @ins_error int



begin tran

insert ExampleDB(exid, a) values('d', 'c')

select @ins_error = @@ERROR



IF @ins_error = 0

BEGIN

PRINT "The author information has been replaced"

COMMIT TRAN

END

ELSE

BEGIN

PRINT "An error occurred during execution of the INSERT statement."

ROLLBACK TRAN

END



위의 쿼리에서 exid컬럼은 프라이머리키입니다. 인서트시 중복되면

Server: Msg 2627, Level 14, State 1, Line 0

Violation of PRIMARY KEY constraint 'PK_ExampleDB'. Cannot insert duplicate key in object 'ExampleDB'.

The statement has been terminated.

위와 같은 메세지를 안나오게 하려면 어떡해 해야 하나요.



제 질문이 부족한지 모르겠네요. 님들 죄송해요..그럼 부탁드립니다.

1  COMMENTS
  • Profile
    초보자 2000.09.27 20:31
    김준연 wrote:

    > DECLARE @ins_error int

    >

    > begin tran

    > insert ExampleDB(exid, a) values('d', 'c')

    > select @ins_error = @@ERROR

    >

    > IF @ins_error = 0

    > BEGIN

    > PRINT "The author information has been replaced"

    > COMMIT TRAN

    > END

    > ELSE

    > BEGIN

    > PRINT "An error occurred during execution of the INSERT statement."

    > ROLLBACK TRAN

    > END

    >

    > 위의 쿼리에서 exid컬럼은 프라이머리키입니다. 인서트시 중복되면

    > Server: Msg 2627, Level 14, State 1, Line 0

    > Violation of PRIMARY KEY constraint 'PK_ExampleDB'. Cannot insert duplicate key in object 'ExampleDB'.

    > The statement has been terminated.

    > 위와 같은 메세지를 안나오게 하려면 어떡해 해야 하나요.

    >

    > 제 질문이 부족한지 모르겠네요. 님들 죄송해요..그럼 부탁드립니다.



    insert할때 값이 중복되는거군요..



    저같은경우는 입력하기전에 먼저 값이 있는지 없는지를 select로 찾아보구 입력하거든요



    이 방법을 쓰면어떨까요?



    그럼 즐코하세요.