Jag har en tabell som ser ut såhär: Du måste nog använda en cursor (dvs en loop) Något som kanske fungerar är något i stil med:updatefråga, ny kolumn position
id, obj_id, name, url och position
position är ny och alla poster innehåller 0
något i stil med:
id, obj_id, name, url, position
1, 1, 'bla', 'http://bla', 0
1, 1, 'bla', 'http://bla', 0
1, 1, 'bla', 'http://bla', 0
1, 2, 'bla', 'http://bla', 0
1, 2, 'bla', 'http://bla', 0
1, 2, 'bla', 'http://bla', 0
1, 2, 'bla', 'http://bla', 0
1, 2, 'bla', 'http://bla', 0
1, 2, 'bla', 'http://bla', 0
Nu vill jag uppdatera tabellen så den ser ut så här:
id, obj_id, name, url, position
1, 1, 'bla', 'http://bla', 0
1, 1, 'bla', 'http://bla', 1
1, 1, 'bla', 'http://bla', 2
1, 2, 'bla', 'http://bla', 0
1, 2, 'bla', 'http://bla', 1
1, 2, 'bla', 'http://bla', 2
1, 2, 'bla', 'http://bla', 3
1, 2, 'bla', 'http://bla', 4
1, 2, 'bla', 'http://bla', 5
hur får jag till en updatefråga som gör detta?
Det är en mssql 2000 det är frågan om...
Tack på förhand
AndreasSv: updatefråga, ny kolumn position
http://www.sqlteam.com/item.asp?ItemID=553Sv: updatefråga, ny kolumn position
DECLARE @position int;
DECLARE @obj_id int;
UPDATE TableName SET @position = CASE obj_id
WHEN @obj_id THEN
@position + 1
ELSE
0
END,
@obj_id = obj_id,
position = @position
FROM TableName