Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dell

Select e Update entre tabelas

Recommended Posts

Eu tenho de atualizar duas tabelas, pra isso criei essa função.

 

conn.Execute(" UPDATE produtos INNER JOIN tempprodutos ON produtos.id = tempprodutos.id SET produtos.titulo = tempprodutos.titulo, produtos.subtitulo=tempprodutos.subtitulo ")

 

Bom funciona, eu só queria saber se tem como fazer esse update mais simples. Tenho que pegar todos os campos da tabela tempprodutos e atualizar a tabela produtos.

Nesse exemplo atualizei somente dois campos.

Estou perguntando porque essa tabela contém 52 campos.

 

Dá pra simplificar essa SQL??? Se não tiver tudo bem essa funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde tenta um UPDATE, depois outro UPDATE ... dois UPDATES, mas isso se as tabelas forem iguais ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for simplificar em termos de escrita...

conn.Execute(" UPDATE produtos P INNER JOIN tempprodutos T ON P.id = T.id SET P.titulo = T.titulo, P.subtitulo = T.subtitulo ")

Agora se você está com "preguiça" de escrever campo por campo, utiliza o código abaixo:

set rs = createobject("adodb.recordset")
set rs.activeconnection = ObjConexao
rs.cursortype = 3
sql = "SELECT * FROM prd_produto "
rs.open sql
if not rs.eof then
	for i = 0 to rs.fields.count - 1
		conn.Execute(" UPDATE produtos P INNER JOIN tempprodutos T ON P.id = T.id SET P."&rs.Fields.Item(i).Name&" = T."&rs.Fields.Item(i).Name&" ")
	next
end if
rs.close
set rs = nothing
Lembrando que as duas tabelas devem possuir o mesmo número de campos, com o mesmo nome.

 

A propósito, nunca testei desse jeito ai hehe depois posta o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.