연구개발/DBA

EXEC (동적 SQL)

HEAD1TON 2010. 8. 2. 01:18
EXEC (동적 SQL)
 - EXEC (@변수) : 변수로 지정된 sql 문장을 실행
 - 예) 테이블의 이름을 [myTbl현재연월일] 형태로 항상 만들어져야 하는 경우

--샘플용 DB : pubs
declare @sql varchar(100)
set @sql = ' select * from authors'
set @sql = @sql + ' where au_lname = ''green'''
exec(@sql)

 - 예) 테이블의 이름을 [myTbl현재연월일] 형태로 항상 만들어져야 하는 경우
declare @curDate smalldatetime
declare @curYear varchar(4)
declare @curMonth varchar(2)
declare @curDay varchar(2)
declare @sql varchar(100)

set @curDate = getDate()
set @curYear = year(@curDate)
set @curMonth = month(@curDate)
set @curDay = day(@curDate)

set @sql = ' create table myTbl'
set @sql = @sql + @curYear + '_' + @curMonth + '_' + @curDay
set @sql = @sql + ' (id int, name nchar(10))'

exec(@sql)