Array
(
)

Auto Incremento com Relacao

Felipe_cduarte
   - 19 jul 2004

Fala pessoal,

Estou com um problema. Eu tenho uma tabela com uma PK concatenada. O primeiro campo é uma FK, e o segundo um campo Identity. Eu queria saber se é possivel fazer o auto incremento com relação ao primeiro campo, por exemplo, se o primeiro campo tiver valor 1, o auto incremento vai de 1 até N. Se o primeiro campo tiver valor 2 , mesma coisa. Ex:

campo 1 campo 2
1 1
1 2
2 1
2 2
3 1

assim por diante ...

quem puder me ajudar , obrigado !

Marcus.magalhaes
   - 19 jul 2004

Bom dia Felipe,

a resposta é não, pq as colunas, apesar de fazerem parte de uma chave, são independentes, a solução seria vc fazer o incremento na mão.

MAS COMO EU JÁ HAVIA RESPONDIDO PARA OUTRA PESSOA DESTE CHAT (Marcos.Rio), NÃO VEJO ESTA SOLUÇÃO COM BONS OLHOS PORQUE SE VC TIVER CONEXÕES SIMULTÂNES INSERINDO O MESMO 1o. CAMPO, VC PODERÁ TER UM ERRO DE CHAVE DUPLICADA, ALÉM DE TER PROBLEMAS DE PERFORMANCE POR ESTAR, A CADA INSERT, FAZENDO UM TABLE SCAN OU [CLUSTERED] INDEX SCAN, O QUE CAUSA UMA DEGRADAÇÃO MUITO GRANDE NO SISTEMA E IRÁ TRAZER MUITA DOR DE CABEÇA DEPOIS.

Att,

Felipe_cduarte
   - 20 jul 2004

Bom dia Marcus,

primeiramente obrigado pela resposta. Mas volto com uma pergunta: qual seria então a melhor solução? usar o campo 2 como chave da tabela e deixar o campo 1 somente com a restrição de chave estrangeira ?

[]´s,

Marcus.magalhaes
   - 20 jul 2004

Bom dia Felipe.

O melhor é utilizar os dois campos como chave, pq qdo vc for fazer a pesquisa, certamente será pelo campo 1, assim ele já estará no índice, que deve ser clustered.

Obs.: Toda FK que vc criar, deve ser um índice ou fazer parte dele, pois assim a pesquisa será mais rápida.

Att,