Comando UPDATE – Atualizar dados em uma tabela no Microsoft SQL Server
Comando UPDATE em SQL
O comando UPDATE em SQL permite atualizar dados em uma coluna de um registro em uma tabela, ou todas as colunas em todos os registros na tabela.
Sintaxe:
UPDATE tabela SET coluna = expressão | valor, coluna = expressão | valor ... [FROM data sources] [WHERE condições];
Esse comando permite atualizar os dados em múltiplos registros de uma vez, mas somente opera em uma tabela por vez.
A palavra-chave SET é usada para definir qual coluna será modificada, assim como o novo valor a ser atribuído a ela. Esse valor pode ser um literal, uma variável, uma expressão, ou mesmo dados de outra coluna descrita no item data sources da linha FROM (que é opcional).
A cláusula WHERE, apesar de opcional, é de suma importância para o comando UPDATE. Se ela não for usada, TODA a tabela será atualizada – todos os registros!. Já com a cláusula WHERE, somente os registros que correspondam ao filtro aplicados serão atualizados.
Tome muito cuidado com isso – não corra o risco de perder os dados da tabela!
Vamos aos exemplos.
Exemplos
1. Alterando o preço do livro Using Samba para R$ 65.43:
UPDATE tbl_livros SET Preco_Livro = 65.43 WHERE NOME_LIVRO = 'Using Samba';
2. Alterando o sobrenome do autor de id 2 (Gerald Carter) para Carter Jr.
UPDATE tbl_autores SET Sobrenome_Autor = 'Carter Jr.' WHERE ID_Autor = 2;
3. Alterar o ISBN para 654738322 e o preço para R$ 71,20, do livro de ID igual a 103:
UPDATE tbl_livros SET Preco_Livro = 71.20, ISBN = '654738322' WHERE ID_Livro = 103;
Próximo: SELECT INTO – Criar nova tabela a partir de uma tabela existente
Olá estou com dúvida no Update de múltiplos campos. Os parâmetros para a segunda alteração não são reconhecidos como tal. A resposta é um syntax error que afirma não existir uma coluna com o nome do registro que estou tentando imputar.
Exemplo:
sqlite> update estudantes set codigo=3 , estados = MEX where matricula=3;
Error: no such column: MEX
sqlite>
Estou fazendo algo de errado mas não sei o que…
Criei uma base de dados em acess, de comercio de automoveis usados, tenho a tabela automoveis e tabela clientes, coisa simples, contudo complicou-se uma vez que há automoveis “repetidos” ou seja em 2 situações identicas, o automovel foi vendido ao cliente X e passado um tempo ele comprou outro no nosso stand e entregou o primeiro(o que tinha comprado anteriormente), que já foi entretanto foi vendido ao cliente Y, poderia alter o registo, mas assim perderia o historico e não é o pretendido, como fazer?
update estudantes set codigo=3 , estados = “MEX” where matricula=3;