How to INSERT a row INTO a table that has an 'order' column without cursor
I suppose you want something like this:

BEGIN TRANSACTION ;

    DECLARE @pos INT = 1 ;

    UPDATE tbl
    SET position = position + 1
    WHERE position &gt;= @pos
      AND EXISTS
          (SELECT * FROM tbl WHERE position = @pos) ;

    INSERT INTO tbl
      (&lt;column names&gt;, position)
    VALUES
      (&lt;values ...&gt;, @pos) ;

COMMIT TRANSACTION ;


Note that this design will behave highly inefficiently, if you have often inserts. It will essentially update almost the entire table for every new insert!