是不是这样就可以了?BEGIN TRAN trn...WHILE ...
BEGIN
INSERT INTO ..
SELECT @nErr = @@error
IF @nErr <> 0
BEGIN
ROLLBACK TRANSACTION;
                  ...
END
         ...
ENDCOMMIT TRAN trn
...
RETURN;