Problema com Indice unique e Campo Identify
04/08/2004
0
Eu tenho uma tabela com dois campos, código e descrição. O campo código eu criei com identify e descrição unique constraint. Quando insiro um registro que viola o indice, ele dá o erro corretamente, mas quando vou insirir um registro corretamente, a sequencia do código não fica correta. Exemplo:
Código Descrição
----------------------
1 Teste -> Ok !
2 Teste -> Erro, registro não gravado
3 Outro Teste -> O código está incorreto, era para ser 2.
Abaixo segue o código SQL da tabela:
O que pode estar errado ?
Obrigado pela atenção.
[]´s
Código Descrição
----------------------
1 Teste -> Ok !
2 Teste -> Erro, registro não gravado
3 Outro Teste -> O código está incorreto, era para ser 2.
Abaixo segue o código SQL da tabela:
CREATE TABLE [dbo].[SCA_GRUPOS] (
[CGRUPO] [smallint] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[DGRUPO] [varchar] (40) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SCA_GRUPOS] WITH NOCHECK ADD
CONSTRAINT [PK_SCA_GRUPOS] PRIMARY KEY CLUSTERED
(
[CGRUPO]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SCA_GRUPOS] WITH NOCHECK ADD
CONSTRAINT [IX_SCA_GRUPOS] UNIQUE NONCLUSTERED
(
[DGRUPO]
) ON [PRIMARY]
O que pode estar errado ?
Obrigado pela atenção.
[]´s
Seu-madruga
Curtir tópico
+ 0
Responder
Posts
04/08/2004
Marcus.magalhaes
Boa tarde, blz?
Não tem nada de errado, o q acontece é q quando vc faz o insert e o mesmo falha devido a duplicate key, o sql já atualizou o registro onde é armazenado o valor para o identity, sendo assim aquele valor está perdido.
Porém, mesmo isso acontecendo, é melhor que vc não tenha uma sequencia correta do q tentar implementar um sequenciamento manual, que irá honerar o banco, com leituras e gravações, causando uma perda de performance e tb o risco de um duplicate key, pq 2 ou mais conexões pegaram o mesmo id.
Att,
Não tem nada de errado, o q acontece é q quando vc faz o insert e o mesmo falha devido a duplicate key, o sql já atualizou o registro onde é armazenado o valor para o identity, sendo assim aquele valor está perdido.
Porém, mesmo isso acontecendo, é melhor que vc não tenha uma sequencia correta do q tentar implementar um sequenciamento manual, que irá honerar o banco, com leituras e gravações, causando uma perda de performance e tb o risco de um duplicate key, pq 2 ou mais conexões pegaram o mesmo id.
Att,
Responder
Clique aqui para fazer login e interagir na Comunidade :)