最近在学习事务,做了个小测试CREATE  PROCEDURE UP_ADD
@NUM INT 
AS
BEGIN
DECLARE @tb TABLE (ID int )
BEGIN TRANSACTION 
WHILE (@NUM>0)
BEGIN
 
 INSERT INTO @tb(ID) VALUES(@NUM)
 IF(@@ERROR<>0)
 BEGIN
  ROLLBACK TRANSACTION 
  RETURN 
 end
 SET @NUM=@NUM-1
END
SELECT * FROM @tb
if (@@Error>0)
 begin
ROLLBack TRANSACTION --如果发生错误则回滚
 end
 else
 begin
  COMMIT TRANSACTION   --没有错误则提交事务
 end
END结果到没什么问题,但在关闭该窗口时,会提示“有未提交的事务。是否要在关闭窗口之前提交这些事务?”
请问这是什么原因呢?如何解决和避免它?