Quero copiar dados de uma coluna para outra coluna de outra tabela. Como eu posso fazer isso?
Tentei o seguinte:
Update tblindiantime Set CountryName =(Select contacts.BusinessCountry From contacts)
mas não funcionou.
Desejo copiar a coluna "BusinessCountry" da tabela de contatos para a coluna "CountryName" da tabela tblindiantime.
Respostas:
No SQL Server 2008, você pode usar uma atualização de várias tabelas da seguinte maneira:
Você precisa de uma condição de junção para especificar qual linha deve ser atualizada.
Se a tabela de destino estiver vazia, você deve usar um INSERT em vez disso:
fonte
Aqui a consulta:
Mesma mesa:
Tabela Diferente:
fonte
Tabela2.Coluna2 => Tabela1.Coluna1
Sei que essa pergunta é antiga, mas a resposta aceita não funcionou para mim. Para futuros googlers, isto funcionou para mim:
Através do qual:
fonte
[Michael Pakhantsov]
Espero que você tenha o campo-chave em duas tabelas.
fonte
ORA-01427: single-row subquery returns more than one row
se o select retornar mais de uma linha, e se eu quiser selecionar mais de uma linha e atualizar a coluna com esses valores?WHERE
. Por exemplo, se tblindiantime tem campoContactID
, que é oID
da linha nacontacts
qual pertence a cada linha em tblindiantime, você deve usarWHERE tblindiantime.ContactID=contacts.ID
. Veja a resposta de cedrikdlb para outra variação.A resposta de uma pergunta semelhante funcionou mais corretamente para mim do que a resposta selecionada para esta pergunta (por Mark Byers). Usando a resposta de Mark, minha coluna atualizada obteve o mesmo valor em todas as linhas (talvez o valor da primeira linha que correspondeu à junção). Usando a resposta de ParveenaArora do outro tópico, atualizou a coluna com os valores corretos.
Transformando a solução de Parveena para usar os nomes das tabelas e colunas desta questão, a consulta seria a seguinte (onde eu suponho que as tabelas estão relacionadas por meio de tblindiantime.contact_id):
fonte
Eu acho que todas as respostas anteriores estão corretas, este código abaixo é muito válido especialmente se você tiver que atualizar várias linhas de uma vez, nota: é PL / SQL
Eu gostaria que isso pudesse ajudar.
fonte
Agora é mais fácil com o Management Studio 2016.
Usando o SQL Server Management Studio
Para copiar dados de uma tabela para outra
1.Abra a tabela com as colunas que deseja copiar e a que deseja copiar clicando com o botão direito do mouse nas tabelas e clicando em Design .
2.Clique na guia da tabela com as colunas que deseja copiar e selecione essas colunas.
3. No menu Editar , clique em Copiar .
4. Abra uma nova janela do Editor de Consultas.
5. Clique com o botão direito do mouse no Editor de Consultas e clique em Design Query no Editor .
6. Na caixa de diálogo Adicionar Tabela , selecione a tabela de origem e destino, clique em Adicionar e feche a caixa de diálogo Adicionar Tabela .
7. Clique com o botão direito em uma área aberta do Editor de Consultas, aponte para Tipo de Alteração e clique em Inserir Resultados .
8. Na caixa de diálogo Escolher Tabela de Destino para Inserir Resultados , selecione a tabela de destino.
9.Na parte superior do Query Designer, clique na coluna de origem na tabela de origem.
10.O Query Designer criou agora uma consulta INSERT. Clique em OK para colocar a consulta na janela original do Editor de Consultas.
11. Execute a consulta para inserir os dados da tabela de origem na tabela de destino.
Para obter mais informações https://docs.microsoft.com/en-us/sql/relational-databases/tables/copy-columns-from-one-table-to-another-database-engine
fonte
Isso pode ser resolvido usando um atributo diferente.
fonte