> SQL SERVER > [SP] 기존 정보가 있으면 UPDATE, 없으면 INSERT

[SP] 기존 정보가 있으면 UPDATE, 없으면 INSERT

CREATE PROCEDURE [dbo].[sp_InfoUpdate]
(
  @FIELD_1   varchar(10),
  @FIELD_2   varchar(10),
  @FIELD_3   varchar(10)
)
AS
BEGIN
 SET NOCOUNT ON
  SET XACT_ABORT ON

  DECLARE @error int, @rowcount int

  BEGIN TRAN
    — 전달된 인자로 UPDATE 를 시도한다
    UPDATE [dbo].[tbl_TABLENAME]
       SET FIELD_2 = @FIELD_2,
           FIELD_3 = @FIELD_3
     WHERE FIELD_1 = @FIELD_1

    SELECT @error=@@ERROR, @rowcount=@@ROWCOUNT

    — 기존에 있는 정보가 UPDATE 되면, 종료
    IF @error <> 0 GOTO Done
    — UPDATE 된 내용이 없으면, 신규 등록
    IF @rowcount = 0
    BEGIN
      INSERT INTO [dbo].[tbl_TABLENAME] (FIELD_1, FIELD_2, FIELD_3)
      VALUES (@FIELD_1, @FIELD_2, @FIELD_3)

      SELECT @error = @@ERROR
      IF @error <> 0 GOTO Done
    END

    COMMIT

  Done:

    IF @error <> 0 ROLLBACK

  RETURN @error
END

카테고리:SQL SERVER
  1. 댓글이 없습니다.
  1. No trackbacks yet.

댓글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. Log Out / 변경 )

Twitter picture

Twitter의 계정을 사용하여 댓글을 남깁니다. Log Out / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. Log Out / 변경 )

%s에 연결하는 중

팔로우

Get every new post delivered to your Inbox.