读书人

极其奇怪,为什么一个存储过程很多人都

发布时间: 2012-07-26 12:01:08 作者: rapoo

极度奇怪,为什么一个存储过程很多人都是正确执行,但有一台电脑就会执行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条,也有可能受别的事务影响而导致查不出来。

读书人网 >SQL Server

热点推荐