Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Não repetir o mesmo valor


Fells

Question

Boa dia e boa semanaa!!!

A duvida da vez é: tenho várias colunas na minha tabela... CODIGO (PK), NUMERORM, CATEGORIA, TIPO, NUMEROPECA, QTDE, NUMEROAMOSTRA, APLICACAO, CLIENTE, DATA ..... e mais alguns.

Na intranet o usuário vai preencher um formulário com esses campos acima e salvar (encaminha para o SQL Server).

Como podem ver minha PK é o CODIGO... porém pediram que a coluna NUMERORM (que é tipo Varchar) e NUMEROAMOSTRA (que é do tipo Varchar) onde ambos são digitadas pelo usuário, fosse algo unico como uma PK =/.

Ou seja... o cara vai preencher o formulário e atribuir um número qualquer e esse número não pode se repetir... há algo que possa ser feito no SQL Server que vai solucionar esse problema??

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Bom dia Fells,

Entendi o problema, mas o estranho seria um código digitado pelo usuário ser sua PK. Teoricamente a PK é um controle interno, transparente ao usuário, e que não significa nada como metadados (dados sobre outros dados).

Tenho algumas alternativas:

- você implementa duas colunas: uma como sendo PK mesmo, e outra com o CODIGO. A coluna de controle fica sendo a PK, enquanto a coluna CODIGO fica sendo de dados que serão digitados pelo usuário.

Como fazer a coluna CODIGO ser única? Toda vez antes de gravar os dados na tabela, pesquisar se aquele CODIGO existe. Se existir, mandar mensagem pro usuário.

A criação de duas colunas seria interessante para performance, uma vez que o tipo do campo CODIGO é varchar...

- Criar a coluna CODIGO não como PK, mas indexá-la e colocá-la como única. Seria a "mesma coisa" de uma PK.

Link to comment
Share on other sites

  • 0

Então cara... o CODIGO (PK) é gerado sozinho... o usuário não faz isso... porem esse NUMERORM e NUMEROAMOSTRA são eles que digitam.

Assim... a empresa finaliza uma peça e os proprio pessoal atribui esses dois números para cada peça manualmente...

é meio estranho, mais é um padrão da empresa, enfim! Ai já que eles fazem isso manualmente, eles queria um jeito de esse número não se repetir!

Ai achei que entrando no SQL Server/Tabela/Design Table e selecionar a coluna e dizer que era uma PK me ajudaria, mais não deu!

Não sei como posso fazer isso...

Aquelas soluções que me passou eu entendi +/- Fulvio.

Link to comment
Share on other sites

  • 0

Boa noite.

Desculpa me meter na conversa.

Eu trabalho com MySQL e no MySQL tem um comando que resolve o seu

problema, eu só não sei se funciona para o SQL Server também, pelo que

estou aprendendo na faculdade, esse comando funcionará.

Para fazer isso, basta usar o comando UNIQUE, por exemplo:

NUMERORM integer not null UNIQUE,

Basta acrescentar esse comando (UNIQUE) nos dois campos

Abraço.

Edited by Ricardo Portolan
Link to comment
Share on other sites

  • 0

Bom dia Ricardo,

Não tem q se desculpar não... rs. Ideias são sempre bem vindas!! :.)

Este comando existe sim no SQL. Na segunda opção que descrevi:

- Criar a coluna CODIGO não como PK, mas indexá-la e colocá-la como única. Seria a "mesma coisa" de uma PK)

É exatamente isto. A difererença será criar um índice, pois o acesso será direto na coluna.

Fells, os números NUMERORM e NUMEROAMOSTRA não podem se repetir, ok? Mas devem ser os dois juntos ou podem se repetir separados?

Quero dizer:

NUMERORM=100 , NUMEROAMOSTRA=200

NUMERORM=100 , NUMEROAMOSTRA=201

Se levar em consideração os dois números juntos eles não se repetem. Se for assim, terá que criar um indice composto único (utilizando o comando UNIQUE...rs...)

Se for assim:

NUMERORM=100 , NUMEROAMOSTRA=200

NUMERORM=101 , NUMEROAMOSTRA=201

Poderá criar um indice "simples" e único para cada coluna. Ok?

Link to comment
Share on other sites

  • 0

Ricardo, Fulvio... eu jurava que tinha deixado alguma resposta pra vocês aqui sobre nosso assunto mais lembrei que no dia quando estava escrevendo o pessoal mexeu na força e caiu tudo aqui... ai quando voltou acabei esquecendo...

Então galera... fiz o que o Fulvio disse sobre o comando Unique...

Importei as tebelas que queria novamente e inseri Unique nos campos que precisavam ser unicos!

Ai deu certinho!!

Agradecido!!!

Sei que é quinta, mais tenham um bom fds.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...