2016-08-08 3 views
0

Я довольно неопытен, когда дело доходит до SQL, поэтому я приношу свои извинения, если это вопрос новобранец.SQL Server: копирование столбцов в другую таблицу на основе соединения

Мне нужно добавить столбцы в таблицу в базе данных на основе соединения из другой базы данных, используя общий столбец между двумя таблицами.

+0

http://www.blackwasp.co.uk/SQLSelectInsert.aspx поисковые системы tada – Will

+0

@ будет хорошая информация, но это операция обновления, хотя из-за того, что вторая таблица уже имеет значения в другом столбце, но все же быстрый поиск должен получить вас там. Столбцы, которые вы хотите скопировать, должны присутствовать в вашей таблице, или вам придется их добавлять сначала, а затем просто обновить с помощью соединения между таблицами, вот какая-то документация по этому http://stackoverflow.com/questions/1293330/how-can-i-do-an-update-statement-with-join-in-sql – Matt

+0

@Matt Спасибо за помощь! Чтобы уточнить, мне нужно создать таблицу со всеми присутствующими столбцами, а затем запустить сценарий, чтобы заполнить его информацией из исходной таблицы? – Eric

ответ

1

Когда вы говорите «добавление столбцов в таблицу в базе данных», вы имеете в виду, что у вас есть таблица, например.

create table Targets (
    TargetID int identity(1,1) not null , 
     constraint pkc_Target primary key clustered (TargetID) , 
    TargetField1 varchar(64) not null , 
    .....) 

И вы хотите добавить дополнительные столбцы в этот стол? Если да, то вы могли бы сделать что-то вроде

alter table dbo.Targets add TargetNewField1 varchar(64) null 

После этого, вы должны были бы пустые столбцы в таблице, а затем может запустить update, чтобы заполнить пробелы, что-то вроде:

update dbo.Targets 
set dbo.Targets.TargetNewField1 = dbo.Source.SourceField1 
from dbo.Targets 
inner join dbo.Source 
on dbo.Targets.SomeUniqueField = dbo.Source.SomeUniqueField 
+0

Это очень полезно! У меня есть таблица с одним столбцом, который будет сопоставлен с другой таблицей, которая, в свою очередь, будет использоваться для сопоставления другой таблицы. Если я понимаю это право, я добавлю все соответствующие столбцы в целевую таблицу, а затем запустим пару команд обновления, чтобы заполнить поля необходимой информацией. – Eric

+0

Да, вот как все сделано. Да, вы можете использовать инструкцию 'select ... in', но это даст вам другую таблицу с набором результатов, а не добавляет столбцы в существующую таблицу. –

+0

После игры с вашим предложением все работает! Большое спасибо за Вашу помощь. – Eric

Смежные вопросы