SQL 存储过程问题, 全局变量@@ROWCOUNT

INSERT.................WHEREid=@idSELECT@retcode=@@ERROR,@rowcount=@@ROWCOUNTIF@retco... INSERT .................
WHERE id=@id

SELECT @retcode = @@ERROR,
@rowcount = @@ROWCOUNT
IF @retcode = 0 AND @rowcount = 0
RETURN 100
ELSE
RETURN @retcode

这里的IF 是不是错了?@@ERROR=0的时候就是成功的时候,那么@@ROWCOUNT应该不为0,就是说上面这个 @retcode = 0 AND @rowcount = 0是不是应该改为 @retcode = 0 AND @rowcount <> 0 刚就业进公司看到人家写的东西,虽然能用,希望能得到正确的指点。
展开
 我来答
qiao_liu
2012-02-23 · TA获得超过422个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:250万
展开全部
if应该没有问题。
你的insert语句没有写完整,从结构来看,应该是insert...select ..from..where类型,表示从某表里查询记录再插入到另一张表。如果查询出的记录数为0(即没有相关记录),则@rowcount=0,但不会报错(这是正常逻辑及语法),即@retcode=0。
所以,你的存储过程的意思是,如果插入的记录为0条(也即查出的记录为0条,不包括查询出记录但插入失败的情况),则返回100,否则返回错误。

如果还有疑问,请Hi我~
zcm475800568
2012-02-23 · TA获得超过114个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:86.3万
展开全部
如果插入成功的话 rowcount就会有记录,如果插入不成功,但是不报错的话,error=0,rowcount=0,插入不成功报错的话,error<>0,rowcount=0.
但是看你这条insert语句有点奇怪 插入语句还有where???
追问
insert 后面省略了一万字。。。这个不管。

成功的条件是: error=0 And rowcount0 ;
失败是:error0 AND rowcount=0 对吗 ???
他原来写的逻辑是 成功:error=0 AND rowcount=0
else 失败。
我想知道的 就是这个rowcount ,插入成功了应该0 吧??
追答
成功的条件是: error=0  And rowcount0 ;
失败是:error0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jingxiong12345
2012-02-23 · TA获得超过536个赞
知道小有建树答主
回答量:1252
采纳率:0%
帮助的人:663万
展开全部
话说一半在存储过程里面写if。。。后面最好还是加上endif
<>这个意思就是不等于。还有什么不懂的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式