Este bloco é formado por dois sub-blocos:
TRY - contém os comandos necessários para executar a tarefa desejada
CATCH - contém os comandos para tratamento de possíveis erros ocorridos no bloco TRY
CATCH - contém os comandos para tratamento de possíveis erros ocorridos no bloco TRY
Quando um erro ocorre no dentro do bloco TRY a execução é desviada para o bloco CATCH, o que permite continuar a execução do script ou interrompê-lo, de acordo com as necessidades do usuário e gravidade do erro gerado.
-- Criando tabela para teste
CREATE TABLE #teste (id int)
-- Adicionando restrição à tabela.
-- Somente IDs menores do que 10 serão aceitos
ALTER TABLE #teste ADD CONSTRAINT chkID CHECK (id < 10)
-- Executando a tarefa em transação
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO #teste VALUES (5)
INSERT INTO #teste VALUES (2)
INSERT INTO #teste VALUES (13) -- Inserção de ID inválido
COMMIT TRANSACTION -- Efetivando alterações na base
END TRY
BEGIN CATCH
PRINT 'Erro ao executar script ' + ERROR_MESSAGE()
ROLLBACK TRANSACTION -- Desfazendo as alterações na base
END CATCH
O SQL Server permite recuperar as informações do erro lançado no bloco TRY, através de algumas funções do sistema:
ERROR_NUMBER() -Retorna o número do erro
ERROR_MESSAGE() - Exibe a mensagem do erro
ERROR_SEVERITY() - Retorna o grau de severidade do erro
ERROR_LINE() - Retorna a linha em que o erro ocorreu
Nenhum comentário:
Postar um comentário