我正在尝试根据给定的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处出错
答案 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