Ho una tabella in cui ho bisogno di copiare determinate righe. Posso ottenere ID di nuove righe come questo:Come copiare righe con SQL e ottenere nuovi e vecchi ID come risultato?
DECLARE @IDs TABLE (ID int)
INSERT T (name, address)
OUTPUT INSERTED.TID INTO @ids
SELECT name, address
FROM T
Ma quello che mi piacerebbe avere è qualcosa di simile:
DECLARE @IDs TABLE (oldID int, newID int)
INSERT T (name, address)
OUTPUT T.ID, INSERTED.TID INTO @ids
SELECT name, address
FROM T
si può fare con SQL Server?
P.S. Non sto facendo questo programmatico, perché deve essere fatto da una stored procedure.
possibile duplicato di [Come copiare le tabelle evitando cursori in SQL?] (Http : //stackoverflow.com/questions/6174355/how-to-copy-tables-avoiding-cursors-in-sql) –
In pratica, esplora [questa domanda] (http://stackoverflow.com/questions/5365629/using- merge-output-to-get-mapping-between-source-id-and-target-id "Uso di merge..output per ottenere il mapping tra source.id e target.id") 's * Linked * section: un sacco di le domande si collegano ad esso, e molte sono simili alle tue. –
Questo non ha molto senso. Non ci sarebbe nessun "vecchio" ID per una riga inserita. Stai parlando di aggiornamenti? –