繁体   English   中英

在将参数传递给存储过程时出现错误

[英]Getting the error in passing parameter to a stored procedure

我有以下存储过程:

ALTER PROCEDURE sp_InsertHashBinMinHash
    @Id INT,
    @HashBin BIGINT,
    @HashTable INT,
    @SubFingerprintId BIGINT,
    @Seqno INT
AS

INSERT INTO HashBinsMinHash (
    HashBin,
    HashTable,
    Seqno,
    SubFingerprintId
    ) OUTPUT inserted.Id
VALUES
(
    @HashBin, @HashTable, @Seqno, @SubFingerprintId
);

当我运行程序时,出现以下错误:

过程或函数sp_insertHashBin需要未提供的参数@Seqno

但是我将4个参数传递给过程

有您的问题: sp_InsertHashBinMinHash需要5个参数( IdHashBinHashTableSubFingerprintIdSeqno )。 您只用4来调用它。因此缺少一个。

我将其重写为

ALTER PROCEDURE sp_InsertHashBinMinHash
    @HashBin BIGINT,
    @HashTable INT,
    @SubFingerprintId BIGINT,
    @Seqno INT,
    @Id INT OUT
AS
BEGIN
INSERT INTO HashBinsMinHash (
    HashBin,
    HashTable,
    Seqno,
    SubFingerprintId
    ) 
VALUES
(
    @HashBin, @HashTable, @Seqno, @SubFingerprintId
);

set @Id = SCOPE_IDENTITY();
select @id
END

并且,将值从C#传递到您的过程,并使用适当的Direction属性添加参数@Id。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM