@@ROWCOUNT을 이용한 update/insert 저장프로시저
select을 하지 않고 @@ROWCOUNT을 이용하기 때문에 성능면이나 쿼리 디자인면에서 유용한 팁.
USE tempdb
GO
CREATE TABLE TEST( T_SEQ int, T_AA char(1) )
INSERT INTO TEST VALUES( 1, 'A' )
INSERT INTO TEST VALUES( 2, 'B' )
INSERT INTO TEST VALUES( 3, 'C' )
CREATE PROCEDURE dbo.SP_INSERT_OR_UPDATE
(
@pSEQ int,
@pSTRING char(1)
)
AS
BEGIN
set NOcount ON
UPDATE
TEST
SET
T_AA = @pSTRING
WHERE
T_SEQ = @pSEQ
IF @@ROWCOUNT = 0 BEGIN
INSERT INTO
TEST
VALUES
( @pSEQ, @pSTRING )
PRINT('인서트 되었습니다.')
ELSE BEGIN
PRINT('업데이트 되었습니다.')
END
END
SP_INSERT_OR_UPDATE 4, 'D' --인서트됨
SP_INSERT_OR_UPDATE 3, 'D' --업데이트됨
SP_INSERT_OR_UPDATE 5, 'F' --인서트됨
SP_INSERT_OR_UPDATE 5, 'G' --인서트됨
SELECT * FROM TEST
출처 : 히딩크
'SQL' 카테고리의 다른 글
| 오피스 설치 안하고도 mdb 파일을 본다 - mdbview (0) | 2007/06/07 |
|---|---|
| ArrayToSingle 사용자정의 함수 (0) | 2007/06/07 |
| @@ROWCOUNT을 이용한 update/insert 저장프로시저 (0) | 2007/06/07 |
| 테이블에 행번호 만들기 (0) | 2007/06/07 |
| SQL 서버의 핵심 T-SQL의 새로운 기능 (0) | 2007/06/07 |
| SQL 서버 2005 관리자가 알아야 할 변화 (0) | 2007/06/07 |
0 Trackback,
0 Comment,
:




최근에 달린 댓글
링크
최근에 받은 트랙백
태그목록