2015-08-21 2 views
0

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

где я проверил этот запрос, но не удалось

update subset_aminer.dbo.sub_aminer_paper 
set sub_aminer_paper.p_abstract = 
    (select aminer_paper.p_abstract 
    from aminer.dbo.aminer_paper 
    where pid IN (86257, 116497, 119248, 135555, 147554, 
        149720, 173254, 191333, 196650, 196656, 
        .....long list of other values ...... 
        1727408, 1737809, 2034956) 
    ) 

Я должен скопировать данные из другой таблицы базы данных в моей таблице базы данных назначения. Таким образом, вы используете subset_aminer.dbo.subset_aminer_paper.p_abstract и aminer.dbo.aminer_paper.p_abstract

Помогите с подтверждениями. Благодаря

+0

вы можете сказать мне с образцами данных, как вы хотите обновить ?? – mohan111

+0

@ Jonathan Я просто хочу получить текстовые значения p_abstract из таблицы aminer для вставки в таблицу subset_aminer ...... имена столбцов одинаковы – maliks

+0

обе таблицы имеют общий идентификатор, хотя оба находятся в разных базах данных. – mohan111

ответ

2
update subset_aminer.dbo.sub_aminer_paper SI 
set SI.p_abstract = AP.p_abstract 
    from aminer.dbo.aminer_paper AP 
    where AP.pid IN (86257, 116497, 119248, 135555, 147554, 
        149720, 173254, 191333, 196650, 196656, 
        .....long list of other values ...... 
        1727408, 1737809, 2034956) AND AP.ID = SI.ID 
+0

он дает ошибку для псевдонимов SI и AP, которые мы использовали – maliks

+0

Это просто псевдонимы таблиц для sub_aminer_paper и aminer_paper, то почему это даст ошибку. Не могли бы вы поместить ваш точный код, тогда мы можем иметь ясный взгляд @maliks – mohan111

+0

Я использовал тот же запрос, что и вы – maliks

1

Просто предложение,

UPDATE subset_aminer.dbo.sub_aminer_paper 
SET p_abstract=aminer.dbo.aminer_paper.p_abstract 
FROM aminer.dbo.aminer_paper 
WHERE subset_aminer.dbo.sub_aminer_paper.pid IN (86257, 116497, 119248, 135555, 147554, 
       149720, 173254, 191333, 196650, 196656, 
       .....long list of other values ...... 
       1727408, 1737809, 2034956) 
+0

Какой результат будет использовать MERGE, мне просто нужны одиночные значения таблицы не как – maliks

+0

Да, сначала он проверяет, присутствует ли идентификатор в обеих таблицах, если его присутствует, то он будет обновляться. Объединить - проверить, присутствует ли идентификатор, Update обновит идентификатор, который вы хотите обновить. –

+0

Здесь merge означает не слияние двух таблиц, а просто используемое для совпадения идентификатора, так как вам нужно :) просто попробуйте. –

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