보통 자동으로 증가되는 값을 선언하기위해서 Primary Key로 자동증가형을선언한후사용하는데요
이값은 insert 가 발생될때에만 키 값을 증가시켜주는데
작업중 필요상 레코드를 insert 를 시키지않고 키값(증분된값)만 알아 내고싶습니다.
(DB 는 MS-SQL2005를 사용하고있어요.)
IF OBJECT_ID('TEST') IS NOT NULL
DROP TABLE TEST
GO
CREATE TABLE TEST(A INT IDENTITY(1,1), B INT)
IF OBJECT_ID('UDF_NEXT_VAL') IS NOT NULL
DROP FUNCTION UDF_NEXT_VAL
CREATE FUNCTION DBO.UDF_NEXT_VAL(
@TB_NAEM SYSNAME
)
RETURNS INT
BEGIN
DECLARE @NEXT_VAL INT
SET @NEXT_VAL = CASE WHEN IDENT_CURRENT( @TB_NAEM ) = IDENT_SEED(@TB_NAEM)
THEN IDENT_SEED(@TB_NAEM)
ELSE IDENT_CURRENT( @TB_NAEM ) + IDENT_INCR ( @TB_NAEM )
END
RETURN @NEXT_VAL
SELECT DBO.UDF_NEXT_VAL('TEST')
--INSERTING 이후테스트를또해보세요