Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 必须声明标量变量"@id";。使用SQL Server创建存储过程_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 必须声明标量变量"@id";。使用SQL Server创建存储过程

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

我正试图创建一个存储过程,用于根据给定的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 = @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

我应该把它放在哪里?