I am performing an UPSERT operation in a Synapse Dedicated SQL Pool.
The TARGET
table has 394 column and I am trying to update the TARGET
with 5 Unique Keys.
MERGE table_A AS TARGET using
(SELECT <col_1>,<col_2>...<col_394> FROM table_B) AS SOURCE
---Unique Constrains---
ON TARGET.col_1 = SOURCE.col_1 AND TARGET.col_2 = SOURCE.col_2
AND TARGET.col_3 = SOURCE.col_3 AND TARGET.col_4 = SOURCE.col_4
WHEN MATCHED THEN UPDATE SET
TARGET.col_5 = SOURCE.col_5,
......
TARGET.col_394= SOURCE.col_394
WHEN NOT MATCHED BY TARGET THEN INSERT
(
<col_1>...<col_394>
)
VALUES
(
SOURCE.<col_1>,
....
SOURCE.<col_394>
)
This is giving an error whose I have no clue.
Msg 1702, Level 16, State 1, Line 1
CREATE TABLE failed because column '<col_88>' in table
'QTable_fd9d2c424ae54f7e8aced139aa6b511d_58' exceeds the maximum of 1024 columns.
Just to be noted here that TARGET
table has HASH DISTRIBUTION
ON <col_2> AND having PRIMARY KEY NONCLUSTERED
on the above 4 columns.
Why I am getting that error? What is the way out?