본문으로 바로가기

SQL에서 변수를 선언하고 선언한 변수에 값을 대입한 다음 조건에 따라 실행을 다르게 할 수 있다.

DECLARE @이름 VARCHAR(10)
DECLARE @날짜 VARCHAR(10)
DECLARE @QUERY VARCHAR(1000)

SET @QUERY = 'SELECT * FROM TBL1 WHERE 1 = 1'
IF @이름 <> '' SET @QUERY = @QUERY + ' AND 이름 = ''' + @이름 + ''''
IF @날짜 <> '' SET @QUERY = @QUERY + ' AND 날짜 = ''' + @날짜 + ''''

EXEC (@QUERY)

아래의 예제는 선언한 변수에 최회한 필드(칼럼)수를 입력하고
만일 필드가 있으면 필드를 삭제하고, 필드가 없으면 필드(칼럼)을 생성하도록 하는 간단한 예제이다.

DECLARE @CNT INT
DECLARE @msg VARCHAR(200)
SELECT @CNT =count(*) FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'DateTime'
IF @CNT<>0 
    BEGIN
     ALTER TABLE tblDL DROP COLUMN DateTime
	 PRINT 'Drop Field'
    END
else 
  BEGIN
   ALTER TABLE tblDL ADD DateTime datetime
	PRINT 'Add Field'
  END