必须声明标量变量“ @id”。使用MSSQL创建存储过程

时间:2019-05-30 12:05:19

标签: sql-server sql-server-2008

我正在尝试根据给定的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
)
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

在@id处出错

3 个答案:

答案 0 :(得分:1)

要根据特定ID验证查询结果,您必须从以下过程的输入中获取查询结果

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

答案 1 :(得分:0)

您需要在存储过程参数中包含@id。

答案 2 :(得分:0)

您必须声明变量并将其传递给存储过程,请确保将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
相关问题