これが可能かどうかは疑問でした。 (大規模な単純化された)私は今、別のテーブルには、このクエリの結果をINSERT
したいSQL Server - INSERTステートメントでWITH句を使用する
;WITH alias (y,z)
AS
(
SELECT y,z FROM tableb
)
SELECT y, z FROM alias
:私はそうのようなSELECT
クエリにいくつかの集約されたデータを適用するためにWITH
句を使用して既存のクエリを持っています。
私は次のことを試してみました:
INSERT INTO tablea(a,b)
;WITH alias (y,z)
AS
(
SELECT y,z FROM tableb
)
SELECT y, z FROM alias
を私はエラーを取得:
Incorrect syntax near ';'.
だから私は、セミコロンなしで試してみましたが、エラーを持っている:
Incorrect syntax near the keyword 'WITH'.
Incorrect syntax near the keyword 'with'. If this statement is a common table expression or an xmlnamespaces clause, the previous statement must be terminated with a semicolon.
です異なる構文で可能なことをしようとしていますか?
セミコロンはステートメントの**終了**にあります。それを正面に置くことは悪い習慣であり、セミコロンですべてのステートメントを適切に終了することに慣れるべきです。 –
[INSERT]ステートメントの[documentation](http://msdn.microsoft.com/en-us/library/ms174335(v = sql.110).aspx)を確認しましたか?これは、CTEが「INSERT」の前に来ていることを示し、CTEを使用する例も含まれています。 – Pondlife