2013-12-06 6 views
-6

Привет, я получаю исключение в моем коде mssql. Вот исключение:Неправильный синтаксис рядом с ключевым словом 'set' и 'as'

Incorrect syntax near the keyword 'set' and 'as'. 

А вот мой код SQL:

UPDATE SET TBLSurvey.Status=-1 FROM TBLSurvey 
RIGHT JOIN (
SELECT OrderId 
FROM [CRM_NEW].[dbo].[TBLSurvey] 
GROUP BY OrderId HAVING(COUNT(*)>1)) AS sd ON TBLSurvey.OrderID=sd.OrderId 
WHERE AnswerDate IS NULL AND Status=0‏ 

Понятия не имею.

+8

Ну, где же вы узнаете, что синтаксис из? Вы только что поняли? –

+2

Да, просто сделал это. – fuat

+2

Это не то, как вы работаете с программным обеспечением, делая вещи на лету. Ваша проблема в том, почему [они пишут документацию и делают ее свободно доступной] (http://technet.microsoft.com/en-us/library/ms177523.aspx), и почему вопросы и ответы на этом сайте остаются для вас доступными узнайте из (например, [этот] (http://stackoverflow.com/questions/1604091/update-a-table-using-join-in-sql-server/1604212#1604212)). Составление синтаксиса, а затем бросание рук в воздух, когда оно не работает, не такое поведение, которое любой человек на этом сайте хочет поощрять - разве вы не хотите учиться самому? –

ответ

3

В SQL Server, обновление должно начинаться:

update TBLSurvey 
    set Status = -1 
    from TBLSurvey . . . 

Синтаксис update в SQL Server является here. Если бы я должен был догадаться, похоже, вы путаетесь с аспектами синтаксиса MySQL.

2

Возможно, вы имели в виду:

UPDATE t 
    SET [Status] = -1 
    FROM dbo.TBLSurvey AS t 
    WHERE [Status] = 0 
    AND NOT EXISTS 
    (
    SELECT 1 FROM CRM_NEW.dbo.TBLSurvey 
    WHERE OrderId = t.OrderId 
    GROUP BY OrderId HAVING COUNT(*) > 1 
) AS sd;  
Смежные вопросы