ExecuteNonQuery()始终返回-1

我正在使用存储过程在表中插入一些值。

CREATE PROCEDURE [dbo].[Sp_InsertValue] @Val1 as nvarchar(50) @Val2 as nvarchar(50) as BEGIN IF NOT EXISTS(SELECT * FROM @mytable WHERE ID=@Val1) INSERT INTO @mytable VALUES(@VAL2) END 

我使用ExecuteNonQuery()使用C#在ASP.NET中调用此存储过程。 它工作正常,没有问题,如果它们不存在,它会插入值。 问题是cmd.ExecuteNonQuery()始终返回-1。 我希望如果插入一条记录,它应该返回1,如果没有,则为0,对吧?

检查存储过程中是否没有“SET NOCOUNT ON”。 这将停止返回的影响行数。 字面上’NoCount’是ON。

在这种情况下,默认响应始终为“-1”。