Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come fare riferimento a un CTE due volte?

Non pensare di poterlo fare. Da MSDN

Enfasi su "singola istruzione SELECT, INSERT, UPDATE, DELETE o CREATE VIEW".

Potrebbe trattarsi di una situazione in cui desideri utilizzare una Tabella temporanea .

CREATE TABLE #Recs
{
  .....
}
INSERT INTO #Recs
select *, row_number() over (order by id) as rownum from ......

Se non conosci la struttura della tabella in anticipo puoi utilizzare questo modulo per creare una tabella temporanea:

select *, row_number() over (order by id) as rownum INTO #Recs from ......

Potrai utilizzare la tabella temporanea nel modo descritto sopra.