SELECT IDENT_CURRENT  (   '테이블명' )  : 현재 값

SELECT IDENT_INCR  (   '테이블명'  )   : 증가값

SELECT IDENT_SEED  (   '테이블명'  )   :  시작값


--- identity 를 재설정 하기

select * from 테이블이름  

SELECT ident_current  (   '테이블이름'  )   --- 이것으로 확인한 후에

SET IDENTITY_INSERT 테이블이름  on

  insert into 테이블이름 (  tr_num, tr_senddate, tr_id, tr_phone ,  tr_msg )

values ('249000', getdate(), 'hee', '019-394-0043', 'test_db 14:35' ) 

SET IDENTITY_INSERT 테이블이름  off  

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 


SELECT  MIN(IDENTITYCOL) FROM  TB_TEST   : 최소값을 가져옴.

SELECT  Max(IDENTITYCOL) FROM  TB_TEST : 최대값을 가져옴.


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

IDENT_INSERT 옵션의 사용

-[    SET IDENTITY_INSERT table_name ON    ]

- 시스템에 의해 값이 자동 생성되는 것을 중지하고 사용자가 직접 identity 컬럼에 값을 삽입할 수 있도록 한다.

- 시스템 관리자, 데이터베이스 소유자, 테이블 소유자에 의해서만 설정될 수 있다.

- 한사용자는 한번에 하나의 테이블에 대해서만 IDENTITY_INSERT 설정을 가질 수 있다.

- 하나의 테이블은 여러명의 IDENTITY_INSERT 설정을 가지는 사용자를 가질 수 있다.

- identity 값을 재사용하는 효과를 가진다.

===============================================

MS-SQL에서는 필드의 값이 들어 갈때 마다 순차적으로 (1.2.3.4.5.6.....)값이 자동으로 

1씩 증가 되게 하려면 테이블을 생성할때

create TABLE TABLENAME ( 

        idx INT NOT NULL IDENTITY(1,1), 

        tname varchar(20), 

        t_phone varchar(30), 

이런 방식으로 합니다.


idx INT NOT NULL IDENTITY(1,1) 

-필드명 데이터형 not허용여부 값이1씩증가-

 

 

 

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

IDENTITY의 조건에 따르지 않고 특정한 값을 입력

  SET IDENTITY_INSERT [TB_NAME] ON

  입력할 INSERT 구문

'DBMS > MS SQL' 카테고리의 다른 글

시간함수  (0) 2013.05.03
입력매개변수, 출력매개변수가 있는 저장프로시져  (0) 2013.05.03
저장프로시져 IF .. ELSE 사용예  (0) 2013.05.03
저장프로시져 CASE문 예  (0) 2013.05.03
저장프로시져 WHILE문 예  (0) 2013.05.03


SELECT CONVERT(CHAR, GETDATE(), 0 )

: 06 29 2009  9:44AM            


SELECT CONVERT(CHAR, GETDATE(), 1 )

: 06/29/09                      


SELECT CONVERT(CHAR, GETDATE(), 2 )

: 09.06.29                      


SELECT CONVERT(CHAR, GETDATE(), 3 )

: 29/06/09                      


SELECT CONVERT(CHAR, GETDATE(), 4 )

: 29.06.09                      


SELECT CONVERT(CHAR, GETDATE(), 5 )

: 29-06-09                      


SELECT CONVERT(CHAR, GETDATE(), 6 )

: 29 06 09                      


SELECT CONVERT(CHAR, GETDATE(), 7 )

: 06 29, 09                     


SELECT CONVERT(CHAR, GETDATE(), 8 )

: 09:45:29                      


SELECT CONVERT(CHAR, GETDATE(), 9 )

: 06 29 2009  9:45:29:443AM     


SELECT CONVERT(CHAR, GETDATE(), 10 )

: 06-29-09                      


SELECT CONVERT(CHAR, GETDATE(), 11 )

: 09/06/29                      


SELECT CONVERT(CHAR, GETDATE(), 12 )

: 090629                        


SELECT CONVERT(CHAR, GETDATE(), 13 )

: 29 06 2009 09:46:10:770       


SELECT CONVERT(CHAR, GETDATE(), 14 )

: 09:46:10:770                  


SELECT CONVERT(CHAR, GETDATE(), 20 )

: 2009-06-29 09:47:45           


SELECT CONVERT(CHAR, GETDATE(), 21 )

: 2009-06-29 09:47:45.070       


SELECT CONVERT(CHAR, GETDATE(), 22 )

: 06/29/09  9:47:45 AM          


SELECT CONVERT(CHAR, GETDATE(), 23 )

: 2009-06-29                    


SELECT CONVERT(CHAR, GETDATE(), 24 )

: 09:47:45                      


SELECT CONVERT(CHAR, GETDATE(), 25 )

: 2009-06-29 09:47:45.070       


SELECT CONVERT(CHAR, GETDATE(), 120 )

: 2009-06-29 09:49:00           


SELECT CONVERT(CHAR, GETDATE(), 121 )

: 2009-06-29 09:49:00.070       



예)


** 1개


use sqlDB;

GO

CREATE PROCEDURE USP_USER1

@userName NVARCHAR(10)

AS

 SELECT * FROM USERTBL WHERE NAME = @userName ;


---------------------------------------------------------------------

실행)

exec usp_users1 'ㅌㅌㅌㅌ';




** 2개


CREATE PROCEDURE USP_USER2

@userBirth      INT,

@userHeight    INT

AS

 SELECT * FROM USERTBL 

  WHERE birthYear > @userBirth AND height > @userHeight;


-----------------------------------------------------------------

실행)

EXEC USP_USER2 1980, 180;



** 출력매개변수 사용시


CREATE PROCEDURE USP_USER4

@txtValue        NCHAR(10),

@outValue       INT OUTPUT

AS

INSERT INTO TESTTBL VALUES ( @txtValue );

SELECT @outValue = IDENT_CURRENT('testTbl');

-- 테이블의 identity값



'DBMS > MS SQL' 카테고리의 다른 글

MS SQL - IDENTITY  (0) 2013.05.03
시간함수  (0) 2013.05.03
저장프로시져 IF .. ELSE 사용예  (0) 2013.05.03
저장프로시져 CASE문 예  (0) 2013.05.03
저장프로시져 WHILE문 예  (0) 2013.05.03


CREATE PROCEDURE   USP_IFELSE


      @userName  NVARCHAR(10)


AS


        DECLARE @bYear   INT

        SELECT @bYear = birthyear FROM USETBL

          WHERE NAME = @useName;


        IF ( @bYear >= 1980 )

            BEGIN

                   //..............

            END

        ELSE

            BEGIN

                   //...................

            END

'DBMS > MS SQL' 카테고리의 다른 글

시간함수  (0) 2013.05.03
입력매개변수, 출력매개변수가 있는 저장프로시져  (0) 2013.05.03
저장프로시져 CASE문 예  (0) 2013.05.03
저장프로시져 WHILE문 예  (0) 2013.05.03
저장프로시져 @@ERROR함수 사용 예  (0) 2013.05.03


CREATE PROC usp_case

     @userName nvarchar(10)

AS

 DECLARE @bYear INT 

 DECLARE @tti NCHAR(3) -- 띠

 SELECT @bYear = birthYear FROM userTbl

  WHERE name = @userName;

 SET @tti =

  CASE

   WHEN ( @bYear%12 =  0) THEN '원숭이'

   WHEN ( @bYear%12 =  1) THEN '닭' 

   WHEN ( @bYear%12 =  2) THEN '개' 

   WHEN ( @bYear%12 =  3) THEN '돼지' 

   WHEN ( @bYear%12 =  4) THEN '쥐' 

   WHEN ( @bYear%12 =  5) THEN '소' 

   WHEN ( @bYear%12 =  6) THEN '호랑이' 

   WHEN ( @bYear%12 =  7) THEN '토끼' 

   WHEN ( @bYear%12 =  8) THEN '용' 

   WHEN ( @bYear%12 =  9) THEN '뱀' 

   WHEN ( @bYear%12 =  10) THEN '말' 

   ELSE '양'

  END;

 PRINT @userName + '의 띠==> ' + @tti;



+ Recent posts