2015-05-28 232 views
0

我执行SQL Server中的以下MERGE语句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

,因为我有我的数据库2个表,但在表1中我只有钞票的序列号,并在表2,我有所有的数据,所以我想利用合并更新550个法案 –

+0

如果这是你在做什么,然后你为什么不使用更简单的'update'? – 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等中运行这个吗?如果是这样,确保没有MERGE语句开始前一个分号。这是一个新的要求时MERGE语句在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; 

我在一段时间忘了这个每隔一段时间,因为每个语句后分号不在大多数情况下强制。