Same statement rewritten as UPDATE FROM, with nonsense logic commented out:
-- Formatted
DECLARE @tempS AS nvarchar(150)
DECLARE @tempW AS nvarchar(50)
DECLARE @tempQ As nvarchar(5)
UPDATE e SET
@tempS = SKU1, -- collect value of SKU1 before any updates are applied to this row
@tempW = WHSELOC1,
@tempQ = QTY1,
SKU1 = Case
When SKU2 = u.SKUVAL Then SKU2
When SKU3 = u.SKUVAL Then SKU3
When SKU4 = u.SKUVAL Then SKU4
When SKU5 = u.SKUVAL Then SKU5
When SKU6 = u.SKUVAL Then SKU6
When SKU7 = u.SKUVAL Then SKU7
When SKU8 = u.SKUVAL Then SKU8
When SKU9 = u.SKUVAL Then SKU9
When SKU10 = u.SKUVAL Then SKU10
When SKU11 = u.SKUVAL Then SKU11
When SKU12 = u.SKUVAL Then SKU12
When SKU13 = u.SKUVAL Then SKU13
When SKU14 = u.SKUVAL Then SKU14
When SKU15 = u.SKUVAL Then SKU15
else 'S??' End,
WHSELOC1 = Case
When SKU2 = u.SKUVAL Then WHSELOC2
When SKU3 = u.SKUVAL Then WHSELOC3
When SKU4 = u.SKUVAL Then WHSELOC4
When SKU5 = u.SKUVAL Then WHSELOC5
When SKU6 = u.SKUVAL Then WHSELOC6
When SKU7 = u.SKUVAL Then WHSELOC7
When SKU8 = u.SKUVAL Then WHSELOC8
When SKU9 = u.SKUVAL Then WHSELOC9
When SKU10 = u.SKUVAL Then WHSELOC10
When SKU11 = u.SKUVAL Then WHSELOC11
When SKU12 = u.SKUVAL Then WHSELOC12
When SKU13 = u.SKUVAL Then WHSELOC13
When SKU14 = u.SKUVAL Then WHSELOC14
When SKU15 = u.SKUVAL Then WHSELOC15
else 'W??' End,
QTY1 = Case
When SKU2 = u.SKUVAL Then QTY2
When SKU3 = u.SKUVAL Then QTY3
When SKU4 = u.SKUVAL Then QTY4
When SKU5 = u.SKUVAL Then QTY5
When SKU6 = u.SKUVAL Then QTY6
When SKU7 = u.SKUVAL Then QTY7
When SKU8 = u.SKUVAL Then QTY8
When SKU9 = u.SKUVAL Then QTY9
When SKU10 = u.SKUVAL Then QTY10
When SKU11 = u.SKUVAL Then QTY11
When SKU12 = u.SKUVAL Then QTY12
When SKU13 = u.SKUVAL Then QTY13
When SKU14 = u.SKUVAL Then QTY14
When SKU15 = u.SKUVAL Then QTY15
else '999' End,
QTY2 = Case
When SKU2 <> u.SKUVAL Then QTY2
When QTY2 = 0 Then 0
else @tempQ End,
SKU2 = Case
When SKU2 <> u.SKUVAL Then SKU2
--When SKU2 = NULL Then NULL
else @tempS End,
WHSELOC2 = Case
When SKU2 <> u.SKUVAL Then WHSELOC2
--When WHSELOC2 = NULL Then NULL
else @tempW End,
QTY3 = Case
When SKU3 <> u.SKUVAL Then QTY3
When QTY3 = 0 Then 0
else @tempQ End,
SKU3 = Case
When SKU3 <> u.SKUVAL Then SKU3
--When SKU3 = NULL Then NULL
else @tempS End,
WHSELOC3 = Case
When SKU3 <> u.SKUVAL Then WHSELOC3
--When WHSELOC3 = NULL Then NULL
else @tempW End,
QTY4 = Case
When SKU4 <> u.SKUVAL Then QTY4
When QTY4 = 0 Then 0
else @tempQ End,
SKU4 = Case
When SKU4 <> u.SKUVAL Then SKU4
--When SKU4 = NULL Then NULL
else @tempS End,
WHSELOC4 = Case
When SKU4 <> u.SKUVAL Then WHSELOC4
--When WHSELOC4 = NULL Then NULL
else @tempW End,
QTY5 = Case
When SKU5 <> u.SKUVAL Then QTY5
When QTY5 = 0 Then 0
else @tempQ End,
SKU5 = Case
When SKU5 <> u.SKUVAL Then SKU5
--When SKU5 = NULL Then NULL
else @tempS End,
WHSELOC5 = Case
When SKU5 <> u.SKUVAL Then WHSELOC5
--When WHSELOC5 = NULL Then NULL
else @tempW End,
QTY6 = Case
When SKU6 <> u.SKUVAL Then QTY6
When QTY6 = 0 Then 0
else @tempQ End,
SKU6 = Case
When SKU6 <> u.SKUVAL Then SKU6
--When SKU6 = NULL Then NULL
else @tempS End,
WHSELOC6 = Case
When SKU6 <> u.SKUVAL Then WHSELOC6
--When WHSELOC6 = NULL Then NULL
else @tempW End,
QTY7 = Case
When SKU7 <> u.SKUVAL Then QTY7
When QTY7 = 0 Then 0
else @tempQ End,
SKU7 = Case
When SKU7 <> u.SKUVAL Then SKU7
--When SKU7 = NULL Then NULL
else @tempS End,
WHSELOC7 = Case
When SKU7 <> u.SKUVAL Then WHSELOC7
--When WHSELOC7 = NULL Then NULL
else @tempW End,
QTY8 = Case
When SKU8 <> u.SKUVAL Then QTY8
When QTY8 = 0 Then 0
else @tempQ End,
SKU8 = Case
When SKU8 <> u.SKUVAL Then SKU8
--When SKU8 = NULL Then NULL
else @tempS End,
WHSELOC8 = Case
When SKU8 <> u.SKUVAL Then WHSELOC8
--When WHSELOC8 = NULL Then NULL
else @tempW End,
QTY9 = Case
When SKU9 <> u.SKUVAL Then QTY9
When QTY9 = 0 Then 0
else @tempQ End,
SKU9 = Case
When SKU9 <> u.SKUVAL Then SKU9
--When SKU9 = NULL Then NULL
else @tempS End,
WHSELOC9 = Case
When SKU9 <> u.SKUVAL Then WHSELOC9
--When WHSELOC9 = NULL Then NULL
else @tempW End,
QTY10 = Case
When SKU10 <> u.SKUVAL Then QTY10
When QTY10 = 0 Then 0
else @tempQ End,
SKU10 = Case
When SKU10 <> u.SKUVAL Then SKU10
--When SKU10 = NULL Then NULL
else @tempS End,
WHSELOC10 = Case
When SKU10 <> u.SKUVAL Then WHSELOC10
--When WHSELOC10 = NULL Then NULL
else @tempW End,
QTY11 = Case
When SKU11 <> u.SKUVAL Then QTY11
When QTY11 = 0 Then 0
else @tempQ End,
SKU11 = Case
When SKU11 <> u.SKUVAL Then SKU11
--When SKU11 = NULL Then NULL
else @tempS End,
WHSELOC11 = Case
When SKU11 <> u.SKUVAL Then WHSELOC11
--When WHSELOC11 = NULL Then NULL
else @tempW End,
QTY12 = Case
When SKU12 <> u.SKUVAL Then QTY12
When QTY12 = 0 Then 0
else @tempQ End,
SKU12 = Case
When SKU12 <> u.SKUVAL Then SKU12
--When SKU12 = NULL Then NULL
else @tempS End,
WHSELOC12 = Case
When SKU12 <> u.SKUVAL Then WHSELOC12
--When WHSELOC12 = NULL Then NULL
else @tempW End,
QTY13 = Case
When SKU13 <> u.SKUVAL Then QTY13
When QTY13 = 0 Then 0
else @tempQ End,
SKU13 = Case
When SKU13 <> u.SKUVAL Then SKU13
--When SKU13 = NULL Then NULL
else @tempS End,
WHSELOC13 = Case
When SKU13 <> u.SKUVAL Then WHSELOC13
--When WHSELOC13 = NULL Then NULL
else @tempW End,
QTY14 = Case
When SKU14 <> u.SKUVAL Then QTY14
When QTY14 = 0 Then 0
else @tempQ End,
SKU14 = Case
When SKU14 <> u.SKUVAL Then SKU14
--When SKU14 = NULL Then NULL
else @tempS End,
WHSELOC14 = Case
When SKU14 <> u.SKUVAL Then WHSELOC14
--When WHSELOC14 = NULL Then NULL
else @tempW End,
QTY15 = Case
When SKU15 <> u.SKUVAL Then QTY15
When QTY15 = 0 Then 0
else @tempQ End,
SKU15 = Case
When SKU15 <> u.SKUVAL Then SKU15
--When SKU15 = NULL Then NULL
else @tempS End,
WHSELOC15 = Case
When SKU15 <> u.SKUVAL Then WHSELOC15
--When WHSELOC15 = NULL Then NULL
else @tempW End
FROM dbo.EXPORTMAIN e
LEFT JOIN dbo.UPDATEHROW1 u ON u.ID = e.ID
WHERE e.UPLOADDATE = '" & sqluHd & "'
AND e.ID IN (SELECT ID from dbo.UPDATEHROW1 WHERE MaxVal <> 0)
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden