Sql delete

4 respostas
J

Ola grande amigos, venho aqui tira mais uma duvida. ve se alguem consegue me ajudar nessa

esou usando banco de dados acess 2000

tenho uma tabela chamado orcamento

dentro dessa tabela tenho os sequintes campos
codigoProduto,nome,valor

e dentro desse campos tem varios dados iquais cadastrado ex:

codigo produto valor
1 nome 1,00
1 nome 1,00
1 nome 1,00

alguem sabe como faço para excluir apenas 1 dado desse e naum todo?

4 Respostas

bueno

modo mais facil, deleta tudo e inclui um novo.

vc pode localizar os repetidos com a clausula HAVING e o count(campo) > 1 para detectar os calores repetidos

armazena estes registros duplicados numa lista

exclui no banco todos os registros onde tem informação repetida

inclui de novo

só não esqueça de fazer tudo transacional

blackfalcon

Como ha dados iguais, voce precisa diferencia-los… mas black, como faço isso?

usando chave primaria…

bota uma chave primaria, um campo chamado id por exemplo e coloca como sendo chave primaria ( chave primaria é o campo 1,2,3… dependendo do tanto de campos que voce tiver nas tabela… chave primaria preenche o campo sozinho… )

como faz tempo que nao mecho com sql entao nem lembro certinho… mas voce poderia fazer assim:

delete * from orcamento.id where orcamento.id = 3

nao lembro nada de sql entao pode estar falando bobagem kkkkkkk

mas tenho certeza sobre a chave primaria… :slight_smile:

Abraços

Zeed01

Boa noite Colegas !

Se esses são exemplos de dados reais da sua tabela, vai ser dificil excluir apenas 1.
Assim como para você não consegue diferenciar uma linha da outra, ja que todos os campos tem valores iguais, a aplicação também não vai conseguir.

Isso me parece um problema de modelagem do banco, como o Black disse, a sua tabela deveria ter uma chave primária que diferenciasse um registro de outro… em alguns bancos como Oracle temos o rowId que, caso não tendo chave primaria na tabela pode ser utilizado, em Access eu não sei se tem…

[]s

marciosantri

Bom dia!

Nas tabelas do Oracle existe uma coluna chamada RowId que retorna o endereço da tupla e serve como filtro neste tipo de caso.
Não sei se no Access tem, mas se tiver será por aí. Infelizmente pelo que andei pesquisando, parece que nem o SQLServer tem.
http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=1619294&SiteID=21

Inté.

Criado 19 de maio de 2008
Ultima resposta 20 de mai. de 2008
Respostas 4
Participantes 5