Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
barmalej
Starting Member
40 Posts |
Posted - 2006-02-15 : 05:24:31
|
Hi,If I have several batches in QA separated by GO.Is it possible to write a command to interrupt further processing under cirtain condition, for example after error or failed validation?Usually QA interrupts current batch on serious error but starts next one after GO.Thanks |
|
mallier
Starting Member
24 Posts |
Posted - 2006-02-15 : 07:08:06
|
check this generic code,IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE id=OBJECT_ID('tempdb..#errortable')) DROP TABLE #errortableGOCREATE TABLE #errortable (Error int)GOSET XACT_ABORT ONGOSET TRANSACTION ISOLATION LEVEL SERIALIZABLEGOBEGIN TRANSACTIONGO --write SQL statment hereIF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTIONGOIF @@TRANCOUNT=0 BEGIN INSERT INTO #errortable (Error) SELECT 1 BEGIN TRANSACTION ENDGO --write SQL statment hereIF @@ERROR<>0 AND @@TRANCOUNT>0 ROLLBACK TRANSACTIONGOIF @@TRANCOUNT=0 BEGIN INSERT INTO #errortable (Error) SELECT 1 BEGIN TRANSACTION ENDGOIF EXISTS (SELECT * FROM #errortable) ROLLBACK TRANSACTIONGOIF @@TRANCOUNT>0 BEGINPRINT 'The updated succeeded'COMMIT TRANSACTIONENDELSE PRINT 'The update failed'GODROP TABLE #errortableGO--Note 1: u should check the error after every sql statement.--Note 2 U should start MSDTC if ur batch query refer any linked server or remote servercheers,http://mallier.blogspot.com |
 |
|
|
|
|