Mi chiedevo se fosse possibile. Ho una query esistente che utilizza la clausola WITH
di applicare alcuni dati aggregati a una query SELECT
in questo modo: (massicciamente semplificato)SQL Server: utilizzo della clausola WITH in un'istruzione INSERT
;WITH alias (y,z)
AS
(
SELECT y,z FROM tableb
)
SELECT y, z FROM alias
Ora voglio INSERT
i risultati di questa query in un'altra tabella.
Ho provato quanto segue:
INSERT INTO tablea(a,b)
;WITH alias (y,z)
AS
(
SELECT y,z FROM tableb
)
SELECT y, z FROM alias
ma ottengo l'errore:
Incorrect syntax near ';'.
così ho provato, senza il punto e virgola, ma ha ottenuto l'errore:
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.
Is cosa sto cercando di fare con diverse sintassi diverse?
Il punto e virgola va alla fine ** di una dichiarazione. Metterlo in primo piano è una cattiva abitudine e dovresti abituarti a terminare correttamente ogni affermazione con un punto e virgola. –
Hai controllato la [documentazione] (http://msdn.microsoft.com/en-us/library/ms174335 (v = sql.110) .aspx) per l'istruzione 'INSERT'? Mostra che il CTE precede 'INSERT' e include un esempio di utilizzo di CTE. – Pondlife