Ошибка SQL (102): неправильный синтаксис рядом с "=" - PullRequest
0 голосов
/ 26 мая 2018

Я не могу найти ошибку здесь:

CREATE PROCEDURE sp_update_sync @sync_no varchar(50), @status INT
AS

BEGIN
    UPDATE dbo.table_sync
    SET sync_end_time = GETDATE()
    SET sync_status = @status
WHERE sync_no = @sync_no

END

У меня был похожий скрипт, который работал:

CREATE PROCEDURE sp_write_watermark @Last_ROW_NO_SYNC INT, @TableName 
varchar(50)
AS

BEGIN
    UPDATE dbo.watermarktable
    SET WatermarkValue = @Last_ROW_NO_SYNC 
WHERE TableName = @TableName

END

Синтаксис такой же, но все тот жевыше показано сообщение об ошибке!

SQL Server настроен на Azure.

Ответы [ 3 ]

0 голосов
/ 26 мая 2018

Вам нужно только один раз установить ключевое слово, например,

CREATE PROCEDURE sp_update_sync @sync_no varchar(50), @status INT
AS

BEGIN
    UPDATE dbo.table_sync
    SET sync_end_time = GETDATE(),
    Sync_status = @status
WHERE sync_no = @sync_no

END
0 голосов
/ 26 мая 2018

Первая хранимая процедура, которую вы написали в вопросе, содержала два предложения SET, что неверно ...

CREATE PROCEDURE sp_update_sync @sync_no 
varchar(50), @status INT
AS

BEGIN
UPDATE dbo.table_sync
SET sync_end_time = GETDATE(), 
    sync_status = @status
WHERE sync_no = @sync_no

END

Надеюсь, это поможет!

0 голосов
/ 26 мая 2018

Вы добавили предложение SET более одного раза

CREATE PROCEDURE sp_update_sync @sync_no varchar(50), @status INT
AS

BEGIN
    UPDATE dbo.table_sync
    SET sync_end_time = GETDATE()
    ,sync_status = @status
WHERE sync_no = @sync_no

END
...