Скопируйте данные из одного столбца в другой столбец (который находится в другой таблице)

Я хочу скопировать данные из одного столбца в другой столбец другой таблицы. Как я могу это сделать?

Я попробовал следующее:

Update tblindiantime Set CountryName =(Select contacts.BusinessCountry From contacts) 

но это не сработало.

Я хочу скопировать столбец "BusinessCountry" таблицы контактов в столбец "CountryName" таблицы tblindiantime.

Ответ 1

В SQL Server 2008 вы можете использовать обновление нескольких таблиц следующим образом:

UPDATE tblindiantime 
SET tblindiantime.CountryName = contacts.BusinessCountry
FROM tblindiantime 
JOIN contacts
ON -- join condition here

Вам нужно условие соединения, чтобы указать, какая строка должна быть обновлена.

Если целевая таблица в настоящее время пуста, вы должны вместо этого использовать INSERT:

INSERT INTO tblindiantime (CountryName)
SELECT BusinessCountry FROM contacts

Ответ 2

Здесь запрос:

Та же таблица:

UPDATE table_name 
SET column1 = column2

Другая таблица:

UPDATE table_name1 
    SET column1 = (
        SELECT column2
        FROM table_name2
        WHERE table_name1.id = table_name2.id
    );

Ответ 3

Надеемся, что у вас ключевое поле - две таблицы.

 UPDATE tblindiantime t
   SET CountryName = (SELECT c.BusinessCountry 
                     FROM contacts c WHERE c.Key = t.Key 
                     )

Ответ 4

Таблица2.Column2 = > Таблица1.Column1

Я понимаю, что этот вопрос старый, но принятый ответ не сработал у меня. Для будущих гуглеров это то, что сработало для меня:

UPDATE table1 
    SET column1 = (
        SELECT column2
        FROM table2
        WHERE table2.id = table1.id
    );

в силу которых:

  • table1 = таблица с колонкой, которая нуждается в обновлении
  • table2 = таблица с столбцом с данными
  • column1 = пустой столбец, которому нужны данные из столбца2 (это в таблице 1)
  • column2 = столбец с данными (то есть в таблице2)

Ответ 5

Подобный ответ на вопрос работал более корректно для меня, чем этот вопрос выбрал ответ (Марк Байерс), Используя ответ "Отклик", мой обновленный столбец получил одинаковое значение во всех строках (возможно, значение из первой строки, которая соответствовала соединению). Используя ответ ParveenaArora из другого потока, обновите столбец с правильными значениями.

Преобразуя решение Parveena для использования имен таблиц и столбцов этого вопроса, запрос будет следующим: (где я предполагаю, что таблицы связаны через tblindiantime.contact_id):

UPDATE tblindiantime
SET CountryName = contacts.BusinessCountry
FROM contacts
WHERE tblindiantime.contact_id = contacts.id;

Ответ 6

Я думаю, что все предыдущие ответы верны, этот ниже код очень подходит специально, если вам нужно обновить сразу несколько строк, обратите внимание: это PL/SQL

DECLARE
    CURSOR myCursor IS 
      Select contacts.BusinessCountry 
      From contacts c WHERE c.Key = t.Key;
    ---------------------------------------------------------------------
BEGIN
    FOR resultValue IN myCursor LOOP
        Update tblindiantime t
        Set CountryName=resultValue.BusinessCountry 
        where t.key=resultValue.key;
    END LOOP;
END;

Я бы хотел, чтобы это помогло.

Ответ 7

Его можно решить, используя другой атрибут.

  • Используйте событие щелчка ячейки управления.
  • Выберите значение столбца, которое вы переносите в столбец-фильтр.
  • отправьте выбранное значение в другое текстовое поле или на уровень, который вы заполните, и дополнительную кнопку, чтобы изменить выбранное свойство.
  • обновить весь стек от базы данных и сделать алгоритм с SQL-запросом, чтобы преодолеть это, чтобы перенести его в другой столбец.

Ответ 8

Теперь с административной студией 2016 проще.

Использование SQL Server Management Studio

Чтобы скопировать данные из одной таблицы в другую

1. Откройте таблицу со столбцами, которые вы хотите скопировать, и те, которые вы хотите скопировать, щелкнув правой кнопкой мыши по таблицам, а затем нажав Дизайн.

2.Щелкните вкладку таблицы с столбцами, которые вы хотите скопировать, и выберите эти столбцы.

3. В меню Изменить нажмите Скопировать.

4.Откройте новое окно редактора запросов.

5. Верните редактор запросов и нажмите Запрос дизайна в редакторе.

6. В диалоговом окне Добавить таблицу выберите исходную и целевую таблицу, нажмите Добавить, а затем закройте диалоговое окно Добавить таблицу коробка.

7. Щелкните правой кнопкой мыши открытую область редактора запросов, выберите Изменить тип, а затем нажмите Вставить результаты.

8. В диалоговом окне Выбрать целевую таблицу для вставки результатов выберите таблицу адресатов.

9. В верхней части конструктора запросов щелкните столбец источника в исходной таблице.

10. Дизайнер запросов теперь создал запрос INSERT. Нажмите "ОК", чтобы поместить запрос в исходное окно "Редактор запросов".

11. Выполните запрос, чтобы вставить данные из исходной таблицы в таблицу назначения.

Дополнительная информация https://docs.microsoft.com/en-us/sql/relational-databases/tables/copy-columns-from-one-table-to-another-database-engine