Необходимо объявить скалярную переменную "@id".Создание хранимой процедуры с SQL Server - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь создать хранимую процедуру для обновления таблицы в соответствии с заданным идентификатором, но она показывает мне ошибку

CREATE PROCEDURE updateCategoryPro
    (@categoryName VARCHAR(64),
     @IsActive BIT,
     @IsSelected BIT,
     @mediaId INT,
     @pageTitle VARCHAR(128),
     @metaKeyword VARCHAR(512),
     @metaDescription VARCHAR(256),
     @createDate DATETIME,
     @createdBy INT,
     @updatedDate DATETIME,
     @updatedBy INT)
AS
BEGIN
    UPDATE CategoryMaster 
    SET categoryName = @categoryName,
        @IsActive = IsActive,
        @IsSelected = IsSelected,
        @mediaId = mediaId, 
        pageTitle = @pageTitle,
        metaKeyword = @metaKeyword,
        metaDescription = @metaDescription,
        @createDate = createDate,
        @createdBy = createdBy,
        @updatedDate = updatedDate,
        @updatedBy = updatedBy
    WHERE categoryId = @id
END

Получение ошибки при @id

Ответы [ 3 ]

1 голос
/ 30 мая 2019

Чтобы проверить результат запроса на основе определенного идентификатора, вы должны взять его из ввода процедуры, как показано ниже

CREATE PROCEDURE updateCategoryPro
    @id int,
    @categoryName varchar(64),
    @IsActive bit,
    @IsSelected bit,
    @mediaId int,
    @pageTitle varchar(128),
    @metaKeyword varchar(512),
    @metaDescription varchar(256),
    @createDate datetime,
    @createdBy int,
    @updatedDate datetime,
    @updatedBy int
AS
BEGIN
    UPDATE CategoryMaster 
    SET categoryName=@categoryName,
        IsActive = @IsActive,
        IsSelected = @IsSelected,
        mediaId = @mediaId, 
        pageTitle=@pageTitle,
        metaKeyword=@metaKeyword,
        metaDescription=@metaDescription,
        createDate = @createDate,
        createdBy = @createdBy,
        updatedDate = @updatedDate,
        updatedBy = @updatedBy
    WHERE categoryId = @id
End
0 голосов
/ 30 мая 2019

Вы должны объявить и передать переменную в хранимую процедуру. Убедитесь, что вы передаете значение categoryid как параметр @id в хранимую процедуру.Ниже обновлена ​​хранимая процедура, добавлен параметр @id.

create Procedure updateCategoryPro
(
@categoryName varchar(64),
@IsActive bit,
@IsSelected bit,
@mediaId int,
@pageTitle varchar(128),
@metaKeyword varchar(512),
@metaDescription varchar(256),
@createDate datetime,
@createdBy int,
@updatedDate datetime,
@updatedBy int,
@id INT
)
As
Begin
UPDATE CategoryMaster SET categoryName=@categoryName,@IsActive = 
IsActive,@IsSelected = IsSelected,@mediaId = mediaId, 
pageTitle=@pageTitle,metaKeyword=@metaKeyword,
metaDescription=@metaDescriptin 
,@createDate = createDate,@createdBy = createdBy,@updatedDate = 
updatedDate,@updatedBy = updatedBy
WHERE categoryId = @id
End
0 голосов
/ 30 мая 2019

Вам необходимо включить @id как часть параметров вашей хранимой процедуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...