webForumDet fria alternativet
Logga in / Bli medlem

[MS SQL] INSERT INTO med OUTPUT

Databaser & SQL

0 svar · 390 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#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?

265 ms totalt · 4 externa anrop · v20260731065814-full.05830320
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)