Guest User

Untitled

a guest
Mar 16th, 2012
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.62 KB | None | 0 0
  1. SET XACT_ABORT ON
  2.  
  3. BEGIN TRANSACTION
  4. BEGIN TRY
  5.  
  6.  
  7.     SELECT Row_Number() OVER (ORDER BY TableOneId DESC) -1 AS Offset, TableOneId, A, OtherFields
  8.       INTO #TableOneUpdates
  9.       FROM TableOne
  10.      WHERE A IS NULL
  11.   ORDER BY TableOneId
  12.  
  13.     DECLARE @TopId INT
  14.  
  15.     INSERT INTO Table2
  16.     SELECT Values FROM #TableOneUpdates
  17.     ORDER BY TableOneId
  18.  
  19.     SELECT @TopId = SCOPE_IDENTITY()
  20.  
  21.     UPDATE #TableOneUpdates SET A = @TopId - Offset
  22.  
  23.     UPDATE TableOne
  24.        SET A = T.A
  25.       FROM TableOne
  26. INNER JOIN #TableOneUpdates T ON T.TableOneId  = TableOne.TableOneId
  27.  
  28. COMMIT TRANSACTION
  29. END TRY
  30. BEGIN CATCH
  31. ROLLBACK TRANSACTION
  32. END CATCH
Advertisement
Add Comment
Please, Sign In to add comment