ОБНОВЛЕНИЕ (упрощенная проблема, убрал C # из проблемы)
Как мне написать UPSERT, который может распознавать, когда две строки одинаковы в следующем случае ...
![SSMS](https://i.stack.imgur.com/kTOfK.png)
Посмотрите, как есть \ b [backspace] закодировано там (странный маленький символ)?SQL видит это как то же самое.В то время как мой UPSERT видит это как новые данные и пытается вставить, где должно быть ОБНОВЛЕНИЕ.
//UPSERT
INSERT INTO [table]
SELECT [col1] = @col1, [col2] = @col2, [col3] = @col3, [col4] = @col4
FROM [table]
WHERE NOT EXISTS
-- race condition risk here?
( SELECT 1 FROM [table]
WHERE
[col1] = @col1
AND [col2] = @col2
AND [col3] = @col3)
UPDATE [table]
SET [col4] = @col4
WHERE
[col1] = @col1
AND [col2] = @col2
AND [col3] = @col3