Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET XACT_ABORT ON
- BEGIN TRANSACTION
- BEGIN TRY
- SELECT Row_Number() OVER (ORDER BY TableOneId DESC) -1 AS Offset, TableOneId, A, OtherFields
- INTO #TableOneUpdates
- FROM TableOne
- WHERE A IS NULL
- ORDER BY TableOneId
- DECLARE @TopId INT
- INSERT INTO Table2
- SELECT Values FROM #TableOneUpdates
- ORDER BY TableOneId
- SELECT @TopId = SCOPE_IDENTITY()
- UPDATE #TableOneUpdates SET A = @TopId - Offset
- UPDATE TableOne
- SET A = T.A
- FROM TableOne
- INNER JOIN #TableOneUpdates T ON T.TableOneId = TableOne.TableOneId
- COMMIT TRANSACTION
- END TRY
- BEGIN CATCH
- ROLLBACK TRANSACTION
- END CATCH
Advertisement
Add Comment
Please, Sign In to add comment