Två queries i en transaktion?
Kod:
UPDATE tabell SET SortOrder = SortOrder + 1 WHERE SortOrder >= 2
INSERT INTO tabell(..., SortOrder) VALUES(..., 2)
Eller kanske hellre en trigger för INSERT till tabellen som kollar insertat värde och gör motsvarande UPDATE?
Sen får du fundera på hur du gör för att flytta en post, dvs vid UPDATE av SortOrder. Bör väl inte bli några större skillnader; kolla om det finns en post med det värde du uppdaterar till, i så fall kör ovan UPDATE-query för att "peta upp" allt ett hack. Borde vara lämpligt att göra med en trigger. Posterna kanske inte behöver ligga i nummerföljd, det räcker väl med att de ligger i rätt ordning efter en ORDER BY (dvs 1, 5, 18, 416, 417 är ok)? Har du ett krav på att de skall ligga i nummerföljd kan du alltid bygga någon finurlig query som fixar det i efterhand (typ UPDATE ... FROM ... med nån liten funktion som även returnerar radnummer).