2015-05-28 7 views
0

Я выполнение следующего заявления слияния в SQL Server 2008Объединить в SQL Server 2008 R2

MERGE Nuevo_Nav AS a 
USING Tabla_correcta AS b 
ON a.[No_] = b.[No_ Documento] 
WHEN MATCHED THEN 
    UPDATE SET a.[Respuesta CAE_CAEC] = b.[Respuesta CAE_CAEC]; 

У меня есть следующее сообщение об ошибке:

Msg 156, Level 15, State 1, Line 1 Incorrect syntax near the keyword 'as'.

+0

Здесь я не вижу никаких ошибок, также не знаю, зачем вам «Слияние» здесь. –

+0

, потому что у меня есть две таблицы в моей базе данных, но в таблице 1 у меня есть только серийное число счетов, а в таблице 2 у меня есть все данные, поэтому я думаю, что использовать слияние для обновления 550 счетов –

+0

ЕСЛИ это все, что вы делаете, тогда почему бы вам просто не использовать более простое обновление? – Andrew

ответ

0

Как Fireblade сказал, вам не нужен MERGE здесь. Это простой UPDATE.

UPDATE a 
SET a.[Respuesta CAE_CAEC] = b.[Respuesta CAE_CAEC] 
FROM Nuevo_Nav a 
INNER JOIN Tabla_correcta b 
    ON a.[No_] = b.[No_ Documento] 
1

Это предположение, но выполняете ли вы это в партии/sproc с несколькими заявлениями и т. Д.? Если это так, убедитесь, что перед началом операции слияния есть точка с запятой. Это новое требование, когда оператор слияния был введен в SQL 2008. Итак:

;MERGE INTO Blah 
USING Blah2... 
SET Blah.a = Blah2.b; 

или

DECLARE @str VARCHAR(1000) = 'This is my previous code line'; 

MERGE INTO Blah 
USING Blah2... 
SET Blah.a = Blah2.b; 

я забываю это каждый раз в то время, так как точка с запятой после каждого утверждения не является обязательным в большинстве случаев.