Я делаю простое обновление во временной таблице SQL Server. Когда я обновляю один столбец тремя отдельными операторами, я получаю несогласованный результат, но когда я обновляю один и тот же столбец внутри одного оператора SQL, я получаю ожидаемый результат. Пожалуйста, может кто-то указать разницу между ними. Я что-то упускаю?Столбец SQL Server Update приводит к несогласованному результату
Вот SQL:
CREATE TABLE #EmailChanges
(
OldEmail varchar(100),
NewEmail varchar(100)
)
INSERT INTO #EmailChanges(OldEmail)
VALUES
('[email protected]'),
('[email protected]'),
('[email protected]')
UPDATE #EmailChanges SET NewEmail = replace(OldEmail, '@ccc.abc.com', '@new.domain.com')
UPDATE #EmailChanges SET NewEmail = replace(OldEmail, '@xyz.com', '@new.domain.com')
UPDATE #EmailChanges SET NewEmail = replace(OldEmail, '@abc.com', '@new.domain.com')
-- If I uncomment below sql and comment above three updates, I get desired output.
-- UPDATE #EmailChanges SET NewEmail = replace(replace(replace(OldEmail, '@ccc.abc.com', '@new.domain.com'), '@xyz.com', '@new.domain.com'), '@abc.com', '@new.domain.com')
SELECT * FROM #EmailChanges
Это Гивенс мне следующий результат:
OldEmail NewEmail
--------------------- --------------------------
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
Любые идеи?
Спасибо Martin! Дурак я! :( –