Mam tabelę, w której muszę skopiować określone wiersze. Mogę identyfikatory nowych wierszy tak:Jak skopiować wiersze z SQL i uzyskać nowe i stare identyfikatory jako wynik?
DECLARE @IDs TABLE (ID int)
INSERT T (name, address)
OUTPUT INSERTED.TID INTO @ids
SELECT name, address
FROM T
Ale co chciałbym mieć to coś takiego:
DECLARE @IDs TABLE (oldID int, newID int)
INSERT T (name, address)
OUTPUT T.ID, INSERTED.TID INTO @ids
SELECT name, address
FROM T
Można to zrobić z SQL Server?
P.S. Nie robię tego programistycznie, ponieważ musi to być wykonane przez procedurę przechowywaną.
możliwe duplikat [Jak skopiować tabele unikając kursorów w SQL?] (Http : //stackoverflow.com/questions/6174355/how-to-copy-tables-avoiding-cursors-in-sql) –
Zasadniczo zbadaj [to pytanie] (http://stackoverflow.com/questions/5365629/using- merge-output-to-get-mapping-between-source-id-and-target-id "Korzystanie z polecenia merge..output w celu uzyskania mapowania między source.id a target.id") * Sekcja * Linked *: wiele pytania link do niego, a wiele z nich jest podobnych do twoich. –
To nie ma większego sensu. Dla wstawionego wiersza nie byłoby "starego" identyfikatora. Czy mówisz o aktualizacjach? –