0

我有以下存储过程:

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 个参数传递给程序

4

2 回答 2

0

我会将其重写为

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# 将值传递给您的过程,添加具有正确方向属性的参数 @Id。

于 2013-10-04T08:58:19.753 回答
0

您的问题是:sp_InsertHashBinMinHash需要 5 个参数(、IdHashBinHashTable)。你只用 4 来调用它。所以缺少一个。SubFingerprintIdSeqno

于 2013-10-04T08:29:59.550 回答