database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 5774 게시물 읽기
No. 5774
sp 생성 중 조언을 구합니다. ㅠㅠ
작성자
조문수
작성일
2010-10-07 09:38
조회수
8,133

안녕하세요
날씨 오락가락하는데 건강 유의하시기 바랍니다.

sp 생성 중 실제 쿼리를 exec 하면서 #테이블을 만드는 부분이 있는데, 하도 안되서 간단하게 아래처럼 짤라서 실행해보았습니다.

declare @strQuery NVARCHAR(4000)
set  @strQuery = N'select identity(int,1,1) as id_table, aa.* into #kkkk from (select top 10000 a.idx, a.t_code, a.t_brand, a.t_name, a.t_memberprice, a.t_new,
a.t_sale, a.t_shop, a.t_event, a.t_recommend, a.t_best, a.t_Brand_Eng, a.t_Brand_Kor, a.t_CategoryBig, a.t_CategoryMid, b.t_style as t_StyleBig,
t_Quantity = (SELECT SUM(b.t_quantity) FROM 사이즈테이블 b where b.t_code = a.t_code) from 제품테이블 a LEFT OUTER JOIN 상표테이블 b ON a.t_brand_eng = b.t_brand_eng
Order By a.t_New DESC, a.idx DESC) as aa'
EXEC SP_EXECUTESQL @strQuery

물론, @strQuery 에는 중간중간 다른변수명이 들어갑니다만, 위에는 들어오는 쿼리중에 하나만 뽑아서, 실제적으로는 들어오는 쿼리는 위처럼 나오는건데요

이 후에 @strQuery 를 print 로 찍어본 쿼리는 문제도 없고, 그냥 따로 돌리면 #kkkk 가 잘 생성이 되지만,
꼭 EXEC SP_EXECUTESQL @strQuery 로 하면 생성이 되지 않습니다. 따로 에러메시지도 나오는게 없구요. exec ('...') 해도 생성이 안되구요

아주 이것때문에 쓰러질 지경입니다.

물론, 매우 여러번 확인했습니다만, 저 쿼리 자체는 돌려봐도 실행이 잘됩니다. ㅠㅠ

부디 경험 많으신 선배님들, 답변좀 부탁드려보겠습니다.

(__)

이 글에 대한 댓글이 총 2건 있습니다.

동적쿼리를 만들어서 실행시키는 형태이군요

동적 쿼리에서는 쿼리가 실행되는 영역에 주의해야 합니다.

지금처럼 동적쿼리를 만들어서 sp_executesql로 임시테이블을 만들고
그 후에 동적쿼리가 아닌 일반 쿼리에서 임시테이블을 참조하려면
에러가 납니다. 존재하지 않는다고 말이죠.
 

즉 임시테이블은 동적쿼리 영역에서 만들어진 것입니다.

만약 이렇게 만들어진 임시테이블을 사용하려면 동적쿼리문에 해당 sql을 추가하셔서
가장 나중에 sp_executesql 해야 합니다.


 

도움이 되었으면 좋겠습니다.

추리님이 2010-10-08 09:42에 작성한 댓글입니다.
이 댓글은 2010-10-08 09:43에 마지막으로 수정되었습니다. Edit

동적 쿼리안에 #테이블을 만드셔도  #테이블을 이용하실수 없습니다.

동적쿼리가 실행 될때 한세션이 끝나버립니다. #테이블은 세션이 끝나면 자동 소멸.

1.##테이블로 하시는 방법도 있습니다...

2.동적쿼리부분을 스토드로 만드시고 그부분을 받아오시는방법이 있습니다..

   동적쿼리부분을 스토드로 별도로 만드시는게 관리상 편할듯..

 

지나님이 2010-10-08 10:25에 작성한 댓글입니다.
이 댓글은 2010-10-08 10:31에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5778다음 쿼리 설명 좀 부탁드립니다. [1]
김지명
2010-10-11
6548
5777고급 쿼리 질문입니다. [1]
성진영
2010-10-11
7107
5776user 가 존재한다면 삭제하는 방법은? [1]
용세중
2010-10-11
6279
5774sp 생성 중 조언을 구합니다. ㅠㅠ [2]
조문수
2010-10-07
8133
5773테이블 설계에 조언을 구합니다. [1]
시월애
2010-10-07
7634
5772간단한 쿼리 문 [2]
모이
2010-10-06
6358
5771select * from [테이블명] error 해결책좀 알려주세요.
김재호
2010-10-06
6926
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다