SQL Server 2008 - Сценарий объединения не работает - PullRequest
0 голосов
/ 27 января 2011

Этот сценарий слияния, который я пишу, не компилируется, и я считаю, что у меня правильный синтаксис.

MERGE into MyTable ct_current
USING (SELECT '0%' as Description, '0' as ShareAmount) ct_value
    ON ct_current.ShareAmount = ct_value.ShareAmount
WHEN MATCHED THEN 
    UPDATE SET ct_current.Description = '0%'
WHEN NOT MATCHED THEN
    INSERT (Description, ShareAmount)
    VALUES (ct_value.Description, ct_value.ShareAmount);
GO

Ошибка:

Сообщение 156, Уровень 15, Состояние 1, Строка 1 Неверный синтаксис рядом с ключевым словом «в». Msg 102, уровень 15, состояние 1, строка 2 Неверный синтаксис рядом с 'ct_value'.

Ответы [ 2 ]

1 голос
/ 27 января 2011

Попробуйте

MERGE MyTable AS ct_current
USING (SELECT '0%' as Description, '0' as ShareAmount) ct_value
  ON ct_current.ShareAmount = ct_value.ShareAmount
WHEN MATCHED THEN 
  UPDATE SET ct_current.Description = '0%'
WHEN NOT MATCHED THEN
  INSERT (Description, ShareAmount)
  VALUES (ct_value.Description, ct_value.ShareAmount);
0 голосов
/ 28 января 2011

Я понял, что у меня есть клиент SQL Server 2008 R2, но сервер - SQL Server 2005.

...