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