I am using SQL Server 2012 and higher. For an quirky update SQL server executes as following
DECLARE @Variable1, @Variable2, @Variable3
UPDATE A
SET
A.COLUMN1 = @Variable1, -- Step 4
A.COLUMN2 = @Variable3, -- Step 5
.
.
.
@Variable1 = IIF(@Variable2 = 0, A.COLUMN3, A.COLUMN2), -- Step 1
@Variable2 = IIF((@Variable3 IS NULL OR A.COLUMN3 = @Variable3), 1, 0), -- Step 2
@Variable3 = A.COLUMN1, -- Step 3
.
.
.
FROM TABLE_NAME A
Is there any way to change the order of execution steps by force ??