
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 刚就业进公司看到人家写的东西,虽然能用,希望能得到正确的指点。 展开
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 刚就业进公司看到人家写的东西,虽然能用,希望能得到正确的指点。 展开
展开全部
if应该没有问题。
你的insert语句没有写完整,从结构来看,应该是insert...select ..from..where类型,表示从某表里查询记录再插入到另一张表。如果查询出的记录数为0(即没有相关记录),则@rowcount=0,但不会报错(这是正常逻辑及语法),即@retcode=0。
所以,你的存储过程的意思是,如果插入的记录为0条(也即查出的记录为0条,不包括查询出记录但插入失败的情况),则返回100,否则返回错误。
如果还有疑问,请Hi我~
你的insert语句没有写完整,从结构来看,应该是insert...select ..from..where类型,表示从某表里查询记录再插入到另一张表。如果查询出的记录数为0(即没有相关记录),则@rowcount=0,但不会报错(这是正常逻辑及语法),即@retcode=0。
所以,你的存储过程的意思是,如果插入的记录为0条(也即查出的记录为0条,不包括查询出记录但插入失败的情况),则返回100,否则返回错误。
如果还有疑问,请Hi我~
展开全部
如果插入成功的话 rowcount就会有记录,如果插入不成功,但是不报错的话,error=0,rowcount=0,插入不成功报错的话,error<>0,rowcount=0.
但是看你这条insert语句有点奇怪 插入语句还有where???
但是看你这条insert语句有点奇怪 插入语句还有where???
追问
insert 后面省略了一万字。。。这个不管。
成功的条件是: error=0 And rowcount0 ;
失败是:error0 AND rowcount=0 对吗 ???
他原来写的逻辑是 成功:error=0 AND rowcount=0
else 失败。
我想知道的 就是这个rowcount ,插入成功了应该0 吧??
追答
成功的条件是: error=0 And rowcount0 ;
失败是:error0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
话说一半在存储过程里面写if。。。后面最好还是加上endif
<>这个意思就是不等于。还有什么不懂的?
<>这个意思就是不等于。还有什么不懂的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询