Possible Duplicate:
Incorrect syntax near the keyword 'with'…previous statement must be terminated with a semicolonTSQL은 : cteTABLE가 other_table
에 삽입 함께 내가 계층 적 데이터를 선택하고 테이블에 삽입하려고합니다. 따라서 삽입물에 WITH 문을 사용해야합니다.
이 잘 작동 :
create table test_table
(
id int
)
with t_table
as
(select 12345 wert)
insert into test_table (id)
select wert from t_table
을하지만이 "WITH 키워드 근처에 잘못된 구문의"를 생성 오류 :
CREATE PROCEDURE p_insert_test
AS
BEGIN
with t_table
as
(select 12345 wert)
insert into test_table (id)
select wert from t_table
END
나는 T-SQL은 INSERT 전에 WITH 키워드를 좋아하지 않는 것 같아요 예어. 저장 프로 시저에서 이러한 종류의 삽입 작업을 수행하려면 어떻게해야합니까?
감사합니다.
정확한 코드 및 오류로 소식을 수정할 수 있습니까? 코드의 첫 번째 블록에는 오류가 있습니다. 두 개의 명령문으로 실행하거나 일괄 처리간에 GO 명령을 사용해야합니다. 또한 오류없이 절차를 실행할 수있었습니다. @JNK는 WITH가 일괄 처리의 첫 번째 항목이어야하는 반면, 여기에서 볼 수있는 유일한 요구 사항은 create table & ad-hoc with-select를 분할하는 것입니다. – EBarr
@EBarr - 첫 번째 문은 작동하지만 두 번째 문은 작동하지 않습니다. 첫 번째 진술이 효과가 없다고 생각하는 것 같습니다. – JNK
맞습니다. 첫 번째 블록을 잘라내어 붙여 넣으면 구문 오류가 발생합니다 (메시지 102, 수준 15, 상태 1, 줄 7. 잘못된 구문 인 't_table'근처). 테이블 작성 후 WITH 또는 세미콜론 사이에 "GO"가 있어야합니다. – EBarr