2014-05-08 5 views
0

i ont ce code:Sql Server: requête cte avec table externe

with cte as 
(select m.ID , 1 i from MyTable m union all 
select ID , cte.i +1 i from cte where i < 5) 
select * from cte 

message d'erreur: Msg 319, niveau 15, état 1, ligne 2 syntaxe incorrecte près du mot-clé 'avec'. Si cette instruction est une expression de table commune, une clause xmlnamespaces ou une clause de contexte de suivi des modifications, l'instruction précédente doit être terminée par un point-virgule.

Qu'est-ce qui ne va pas?

+0

'with' doit commencer l'instruction. Essayez d'ajouter un ';' avant la ligne, comme '; avec cte comme ... ' – Andomar

+0

Genius Cela fonctionne, je n'ai aucune idée de ce que cela signifie"; " Pouvez-vous me donner un lien vers une explication à ce sujet? – user1737934

Répondre

0
declare @MyTable table (id int) 
insert @MyTable values (1),(2),(3),(4),(5); 

with cte(id,i) as 
(select m.ID , 1 from @MyTable m union all 
select ID , cte.i +1 from cte where cte.i < 5) 
select * from cte 
+0

regarder pour ";" en deuxième ligne – DimaSUN

+0

Merci beaucoup – user1737934

Questions connexes