webForumDet fria alternativet

[MS SQL] INSERT INTO med OUTPUT

0 svar · 390 visningar · startad av Gein

GeinMedlem sedan sep. 20004 849 inlägg
#1

Jag ska kopiera vissa rader i en tabell till nya rader och endast ändra Id:t. Jag ska även göra andra uppdateringar mot andra tabeller så jag behöver spara undan de nya Id:na, vilket jag gör med OUTPUT. Men jag skulle behöva mappa det nya Id:t med det gamla Id:t (som jag kopierar ifrån). Därför vill jag även i @temp spara undan det gamla Id:t från vilken jag kopierade ifrån.

Hur gör jag bäst det? Jag provade med följande:

INSERT INTO hgrupp ([Name], iId, oId)
	OUTPUT INSERTED.Id, h.Id INTO @temp
	SELECT [Name], iId, oId FROM hgrupp h

men SQL Server klagar och säger

The multi-part identifier "h.Id" could not be bound.

Uppenbarligen går det inte att göra sådär. Finns det något annat trevligt sätt att kunna hämta Id-kolumnen från SELECT:ens resultatmängd?

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb