Sql server 必须声明标量变量"@id";。使用SQL Server创建存储过程
我正试图创建一个存储过程,用于根据给定的id更新表,但它显示了一个错误Sql server 必须声明标量变量"@id";。使用SQL Server创建存储过程,sql-server,sql-server-2008,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 VA
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
处出错,您需要将@id
作为存储过程参数的一部分包含在内。您必须声明变量并将其传递给存储过程,确保将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
要基于特定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
我应该把它放在哪里?