У меня есть хранимая процедура ниже, и я получаю это сообщение об ошибке:
Неверный синтаксис рядом с '01'
У меня есть другие хранимые процедуры, которые начинаются с'01 ', и они работают нормально.Я не уверен, где неправильный синтаксис.
Спасибо за любые выводы.
Вот моя структура таблицы:
CREATE TABLE [dbo].[01_news_test]
(
[interestid] [INT] IDENTITY(1, 1) NOT FOR REPLICATION NOT NULL,
[username] [VARCHAR](50) NULL,
[approval] [BIT] NULL,
CONSTRAINT [PK_news_test]
PRIMARY KEY CLUSTERED ([interestid] DESC)
WITH (pad_index = OFF, statistics_norecompute = OFF,
ignore_dup_key = OFF, allow_row_locks = on,
allow_page_locks = on, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
Вот код для хранимой процедуры (ниже):
ALTER PROCEDURE [dbo].[01_cms_news_mgr_bull_appr_update]
@InterestID INT,
@Approval BIT
AS
DECLARE @sql NVARCHAR(4000)
SELECT @sql = ' UPDATE [01_news_test] ' +
' SET ' +
' Approval = @Approval ' +
' WHERE '
IF @InterestID IS NOT NULL
SELECT @sql = @sql + ' InterestID = @InterestID'
SELECT @sql = @sql + '; '
EXEC sp_executesql @sql, N'@InterestID INT, @Approval BIT', InterestID, Approval
И вот код при выполнении хранимой процедуры в SQL Server Management Studio:
DECLARE @return_value INT
EXEC @return_value = [dbo].[01_cms_news_mgr_bull_appr_update]
@InterestID = 1,
@Approval = 0
SELECT 'Return Value' = @return_value
GO
Наконец, полученная ошибка msg:
Msg 102, Level15, состояние 1, строка 1
Неверный синтаксис рядом с '01'
Обновление: добавление скобки вокруг имени таблицы исправило «неправильную синтаксическую ошибку», хотя теперь я получаю ошибку
Ошибка преобразования типа данных nvarchar в int