我的C#代码使用返回值(不是返回参数)调用存储过程。
// C#
for (int i = 0; i < param.Length; i++)
{
cmd.Parameters.Add(param[i]);
}
cmd.CommandType = CommandType.StoredProcedure;
int retval = cmd.ExecuteNonQuery();
con.Close();
return retval;
存储过程插入记录并使用scope_identity()获取新记录ID。
/* SQL */
SET NOCOUNT ON;
INSERT INTO [dbo].[table] (columns)
VALUES (@parameters);
SET @iParentRowId = Scope_identity();
INSERT INTO [table_related] (ParentRowId, Column2) VALUES (@iParentRowId, @Column2Value);
RETURN @iParentRowId;
sp完全符合预期,但C#返回-1。 (我认为这是一个成功指标。)
如果我设置了NOCOUNT,我会得到受影响的行数,这是我不在乎的。
我可以使用sp中的RETURN获取新的RowId吗?