Ive follow procedure:
alter procedure sp_insert_cities
(
@txt_nome_cidade varchar(300),
@txt_nome_estado varchar(150) = null,
@txt_pais varchar(1
BEGIN TRY
insert into tb_cidades values(
@txt_nome_cidade,
@txt_nome_estado,
@txt_pais)
set @int_id_cidade = @@identity
END TRY
BEGIN CATCH
select @int_id_cidade = int_id_cidade
from tb_cidades
where
txt_nome_cidade = @txt_nome_cidade
END CATCH
The following will try to run your command. You can put anything you want to run in the CATCH block, which will execute only when an error occurs. The remaining code after the CATCH will run with error or without error.
BEGIN TRY
insert into tb_cidades values(
@txt_nome_cidade,
@txt_nome_estado,
@txt_pais)
set @int_id_cidade = @@identity
END TRY
BEGIN CATCH
PRINT 'Error occurred'
END CATCH
if(@@error <> 0)
begin
select @int_id_cidade = int_id_cidade
from tb_cidades
where
txt_nome_cidade = @txt_nome_cidade
end