Hej jag har en tabel bo_Division med DivisionId som jag vill byta ut med ett annat nummer som finns i en annan tabell bo_DivisionDivisionOld Testa den här: Har jag provat men fick följande fel: <code>UPDATE från en annan tabell SQL 2005
bo_DivisionDivisionOld innehåller både DivisionId och DivisionOldId
Det är värdet från fältet divisionOldId som skall bytas till bo_Division.DivisionId
Jag har provat men får fel:
UPDATE bo_Division
SET DivisionId = (SELECT a.DivisionId FROM bo_Division d OUTER APPLY
(SELECT TOP 1 dd.DivisionId FROM bo_DivisionDivisionOld dd WHERE d.DivisionId = dd.divisionOldId
ORDER BY dd.DivisionId)a)
WHERE DivisionId IN (SELECT DivisionOldId FROM bo_DivisionDivisionOld)
Men jag får följande felmeddelande:
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value.
This is not permitted when the subquery follows =, !=, <, <= , >, >= or
when the subquery is used as an expression.
The statement has been terminated.
Sv: UPDATE från en annan tabell SQL 2005
<code>
UPDATE bo_Division SET DivisionId = b.DivisionId
FROM bo_Division a
INNER JOIN bo_DivisionDivisionOld b ON a.DivisionId = b.divisionOldId;
</code>Sv:UPDATE från en annan tabell SQL 2005
Msg 2627, Level 14, State 1, Line 1
Violation of PRIMARY KEY constraint 'PK_bo_Division'. Cannot insert duplicate key in object 'dbo.bo_Division'.
The statement has been terminated.Sv: UPDATE från en annan tabell SQL 2005
UPDATE bo_Division SET DivisionId = b.DivisionId
FROM bo_Division a
INNER JOIN bo_DivisionDivisionOld b ON a.DivisionId = b.divisionOldId
WHERE a.DivisionId <> b.DivisionId;
</code>