我想为登录表编写存储过程。
此过程涉及检查 LogInID 是否已经存在,如果存在则不允许插入具有相同 LogInID 的记录。
我的程序如下:
ALTER PROCEDURE logTRAN
@id varchar(25),
@pass varchar(25)
AS
BEGIN TRANSACTION
insert into login values(@id,@pass)
IF EXISTS (select count(*) from login where LogInID=@id)
BEGIN
PRINT 'USER ALREADY EXISTS'
ROLLBACK
END
ELSE
BEGIN
COMMIT TRANSACTION
END
我执行如下:
exec logTRAN '0L036','aaa'
//这是LogInID为'0L036'的重复记录
但是 Record 被插入,结果如下:
(1 row(s) affected)
USER ALREADY EXISTS
Msg 266, Level 16, State 2, Procedure logTRAN, Line 0
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 2, current count = 0.
我的存储过程中可能有什么错误?
请指导我。