我有一个存储过程,它返回一个字符串值,我必须使用ExecuteNonQuery
语句执行这个 SP。当我执行这个时,我得到 -1 作为返回值。
我从来没用过SET NOCOUNT ON
。我怎样才能得到返回值?我没有将返回值声明为OUTPUT
——只是SELECT @VARIABLENAME
。如何使用 获得价值ExecuteNonQuery
?
我有一个存储过程,它返回一个字符串值,我必须使用ExecuteNonQuery
语句执行这个 SP。当我执行这个时,我得到 -1 作为返回值。
我从来没用过SET NOCOUNT ON
。我怎样才能得到返回值?我没有将返回值声明为OUTPUT
——只是SELECT @VARIABLENAME
。如何使用 获得价值ExecuteNonQuery
?
ExecuteNonQuery
用于执行只返回受影响的行数的查询(尽管可以填充输出参数)。-1
表示没有行受到影响或您已设置 nocount。
如果您需要从存储过程中读取数据,请使用另一个 API 调用。
如果您只获取一个值,如果您使用 .Net 语言,我会使用 ExecuteScalar 命令。我知道Java等有一个等价物。
http://msdn.microsoft.com/en-us/ibrary/system.data.sqlclient.sqlcommand.executescalar.aspx
如果您的 SP 中有输出参数,则 ExecuteNonQuery 可以获得返回数据。这篇文章解释了如何。
http://msdn.microsoft.com/en-us/library/80x06z3b(v=VS.71).aspx
不过,如果您只是返回一个字符串 ExecuteScalar 更易于使用。