Usuário com melhor resposta
Não gravar itens repetidos

Pergunta
-
No sqlserver, tem como fazer uma trigger que quando um erro de chave unica for disparado ele retorna uma mensagem ou simplesmente ignora os dados a serem gravados?
- Movido Giovani Cr quinta-feira, 3 de abril de 2014 20:20
Respostas
-
Junior,
Na verdade por padrão o SQL Server já faz este tipo de tratamento, mas você pode personalizar, veja este simples exemplo:
create table t (id int not null, taxcode int not null) alter table t add constraint uq_t unique (taxcode) -- Ok insert into t values (1, 1) -- Erro insert into t values (2, 1) -- Se quiser personalizar BEGIN TRY insert into t values (2, 1) END TRY BEGIN CATCH IF ERROR_NUMBER() = 2627 SELECT 'O código está duplicado' END CATCH drop table t
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta jjunior.net sexta-feira, 4 de abril de 2014 18:03
Todas as Respostas
-
Bom dia jjunior,
seria algo nesse sentido que você queria?
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. -
Junior,
Na verdade por padrão o SQL Server já faz este tipo de tratamento, mas você pode personalizar, veja este simples exemplo:
create table t (id int not null, taxcode int not null) alter table t add constraint uq_t unique (taxcode) -- Ok insert into t values (1, 1) -- Erro insert into t values (2, 1) -- Se quiser personalizar BEGIN TRY insert into t values (2, 1) END TRY BEGIN CATCH IF ERROR_NUMBER() = 2627 SELECT 'O código está duplicado' END CATCH drop table t
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta jjunior.net sexta-feira, 4 de abril de 2014 18:03