1.로컬(Local) 임시 테이블
1). ## 문자로 시작한다.
2). 참조 범위(Scope)
- 현재 세션에서만 참조할 수 있다. (Local)
2.전역 임시 테이블
1). ## 문자로 시작한다.
2). 동일한 이름의 임시 테이블을 가질 수 없다.
- 전역 임시 테이블은 다른 접미사가 붙지 않는다.
- 따라서 CREATE 전에 동일한 이름이 존재해서는 안되며,
- 동일한 이름의 가진 테이블을 두 개 이상 만들 수 없다.
3). 참조 범위(Scope)
- 모든 세션에서 참조할 수 있다. (Global)
4). 소멸 시점(Lifetime)이 다르다.
- 임시 테이블을 생성한 세션이 닫혀야 될 뿐 아니라,다른 프로세스에서 참조하는 것도
해제되어야 한다.
결국 하고 싶은건 동적쿼리를 사용하여 임시테이블에 저장하는 것이 었다~~
죄길~~
---- 3일전 자료만 가져오게 설정
DECLARE
@SHIP_DATE1 NVARCHAR(8),
@SQL NVARCHAR(500)
set @SHIP_DATE1 = convert(char(8), getdate() - 14, 112)
SET @SQL = '''' + @SHIP_DATE1 + ''''''
set @SQL = '''SELECT * FROM ODD2.V_SHIPPING_RESULT WHERE 1 = 1 and ship_date > ''' +
@SQL + ''')'
set @SQL = 'SELECT * INTO ##TEMP_SHIPPING_RESULT FROM OPENQUERY(MESLINK,' +
@SQL
exec sp_executesql @SQL
-- 로칼 임시테이블로 사용시 sp_executesql을 빠져나오면 범위에서 벋어나서
-- "select * from #TEMP_SHIPPING_RESULT" 가 불가능하다
-- 그래서 전역 임시테이블을 사용하였다.
'일단모아 > 마구마구' 카테고리의 다른 글
vb 스크립트 함수모음 (0) | 2008.04.16 |
---|---|
수출 NEGO관 (0) | 2008.03.25 |
[mssql] sys.objects 정보 (0) | 2008.03.10 |
[mssql] 외래키 변경 (0) | 2008.03.10 |
[mssql] 시스템 sp (0) | 2008.03.10 |