首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

极其奇怪,为什么一个存储过程很多人都是正确执行,但有一台电脑就会执行2次

2012-07-26 
极度奇怪,为什么一个存储过程很多人都是正确执行,但有一台电脑就会执行2次好像还是同时执行的。存储过程如

极度奇怪,为什么一个存储过程很多人都是正确执行,但有一台电脑就会执行2次
好像还是同时执行的。
存储过程如下,真实奇怪死了

SQL code
ALTER PROC [dbo].[addUser](    @qqOpenID CHAR(32),    @userName NVARCHAR(30),    @qqImg VARCHAR(150),    @rankType TINYINT,    @sex TINYINT,    @insertGuidKey CHAR(36),    @wbName VARCHAR(50),    @id INT OUT,    @introduction NVARCHAR(500))AS    SELECT @id=ID FROM Users WHERE qqOpenID=@qqOpenID    IF(@@ROWCOUNT>0)    BEGIN        UPDATE Users SET guidKey=@insertGuidKey,wbName=@wbName WHERE ID=@id        RETURN 65;    END    ELSE    BEGIN        INSERT Users(qqOpenID,userName,qqImg,rankType,sex,guidKey,wbName,typeid,introduction) VALUES(@qqOpenID,@userName,@qqImg,@rankType,@sex,@insertGuidKey,@wbName,1,@introduction)        Select @id=SCOPE_IDENTITY()        RETURN 66;    END    


[解决办法]
那可能要检查一下那台执行两次的机器,是否有什么不同。你可以试试用那台电脑来跟踪究竟它是怎么执行存储过程,就是SSMS那个执行旁边的小绿箭头。看看过程。或者用VS写个代码来调用跟踪,vs很久没用,不会写。
另外,哪怕数据只有1条,也有可能受别的事务影响而导致查不出来。

热点排行