Sto cercando di mettere una dichiarazione try-catch in un trigger utilizzando Microsoft Server 2005.TSQL: try-catch transazione in trigger
BEGIN TRANSACTION
BEGIN TRY
--Some More SQL
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF (XACT_STATE()) = -1
BEGIN
ROLLBACK TRANSACTION;
END;
END CATCH
Il problema è che io non voglio il grilletto per fallire se qualcosa viene catturato dal blocco try-catch. Al momento, ricevo l'errore "La transazione è terminata nel trigger. Il batch è stato interrotto". se la transazione fallisce. Come posso far fallire il grilletto con grazia?
Inoltre, se tolgo la transazione, ottengo l ' "Operazione destinata a grilletto. Batch è stata interrotta." Errore.
BEGIN TRY
--Some More SQL
END TRY
BEGIN CATCH
return
END CATCH
C'è un modo per aggirare questo?
Sto cercando di aggiornare un database legacy ogni volta che nulla è inserito in una tabella. Il problema è che non voglio che l'inserimento fallisca se il trigger fallisce. Il database precedente non è il sistema più affidabile. – Eldila
Inizierò a usare la parola "condannato" in più dei miei messaggi di errore. – AaronLS