Я хочу скопировать данные из одного столбца в другой столбец другой таблицы. Как я могу это сделать?
Я пробовал следующее:
Update tblindiantime Set CountryName =(Select contacts.BusinessCountry From contacts)
но это не сработало.
Я хочу скопировать столбец «BusinessCountry» таблицы контактов в столбец «CountryName» таблицы tblindiantime.
Ответы:
В 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
источник
Вот запрос:
Та же таблица:
UPDATE table_name SET column1 = column2
Другой стол:
UPDATE table_name1 SET column1 = ( SELECT column2 FROM table_name2 WHERE table_name1.id = table_name2.id );
источник
Таблица2.Колонка2 => Таблица1.Колонка1
Я понимаю, что этот вопрос старый, но принятый ответ не сработал для меня. Для будущих гуглеров у меня сработало следующее:
UPDATE table1 SET column1 = ( SELECT column2 FROM table2 WHERE table2.id = table1.id );
Согласно которому:
источник
[Michael Pakhantsov]
Надеюсь, у вас есть ключевое поле - две таблицы.
UPDATE tblindiantime t SET CountryName = (SELECT c.BusinessCountry FROM contacts c WHERE c.Key = t.Key )
источник
ORA-01427: single-row subquery returns more than one row
выбрано, если выбор вернет более одной строки, что, если я хочу выбрать более одной строки и обновить столбец с этими значениями?WHERE
. Например, если у tblindiantime есть полеContactID
, которое являетсяID
строкой,contacts
которой принадлежит каждая строка в tblindiantime, тогда вы должны использоватьWHERE tblindiantime.ContactID=contacts.ID
. См . Ответ cedrikdlb для другого варианта.Ответ на аналогичный вопрос сработал для меня более правильно, чем выбранный ответ на этот вопрос (Марк Байерс). Используя ответ Марка, мой обновленный столбец получил одинаковое значение во всех строках (возможно, значение из первой строки, которая соответствует соединению). Использование ответа ParveenaArora из другого потока обновило столбец с правильными значениями.
Преобразуя решение Parveena для использования имен таблиц и столбцов этого вопроса, запрос будет следующим (где я предполагаю, что таблицы связаны через tblindiantime.contact_id):
UPDATE tblindiantime SET CountryName = contacts.BusinessCountry FROM contacts WHERE tblindiantime.contact_id = contacts.id;
источник
Я думаю, что все предыдущие ответы верны, приведенный ниже код очень верен, особенно если вам нужно обновить сразу несколько строк, обратите внимание: это 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;
Я бы хотел, чтобы это помогло.
источник
С Management Studio 2016 стало проще.
Использование SQL Server Management Studio
Чтобы скопировать данные из одной таблицы в другую
1. Откройте таблицу со столбцами, которые вы хотите скопировать, и ту, в которую вы хотите скопировать, щелкнув таблицы правой кнопкой мыши и выбрав « Дизайн» .
2. Щелкните вкладку таблицы со столбцами, которые вы хотите скопировать, и выберите эти столбцы.
3. В меню « Правка» нажмите « Копировать» .
4. Откройте новое окно редактора запросов.
5. Щелкните правой кнопкой мыши Редактор запросов, а затем выберите Создать запрос в редакторе .
6. В диалоговом окне « Добавить таблицу » выберите исходную и целевую таблицы, нажмите « Добавить» и закройте диалоговое окно « Добавить таблицу ».
7. Щелкните правой кнопкой мыши открытую область редактора запросов, выберите пункт « Изменить тип» и нажмите « Вставить результаты» .
8. В диалоговом окне « Выбор целевой таблицы для вставки результатов» выберите целевую таблицу.
9. В верхней части конструктора запросов щелкните исходный столбец в исходной таблице.
10. Конструктор запросов теперь создал запрос INSERT. Нажмите OK, чтобы поместить запрос в исходное окно редактора запросов.
11. Выполните запрос, чтобы вставить данные из исходной таблицы в целевую таблицу.
Для получения дополнительной информации https://docs.microsoft.com/en-us/sql/relational-databases/tables/copy-columns-from-one-table-to-another-database-engine
источник
Это можно решить, используя другой атрибут.
источник