如何将列值从一个数据库复制到其他数据库中的空列?

时间:2013-12-07 12:56:49

标签: sql sql-server sql-server-2008

我有两个数据库。

  1. 报警
  2. TMP
  3. 我在Alarm中有一个表,在表中有一个空列的空值。 我在TMP中有一个列表。

    我想将这个单列值复制到Alarm数据库中的表。

    到目前为止我尝试的是,

    update [Alarm].[dbo].[AlarmDetails] set Alarm_Message = (select * from [TMP].[dbo].[AlarmDetails$])
    where 1=1
    

    错误是

    Subquery returned more than 1 value.
    

    请注意,

    NOTE: There is no id column in source table. Only one table & one column, Alarm Message.
    

    我知道错误的原因,但我应该如何修改我的SQL。

    谢谢。

3 个答案:

答案 0 :(得分:0)

以下是复制列的示例:

update  dst
set     Alarm_Message = src.AlarmMessage
from    Alarm.dbo.AlarmDetails dst
join    TMP.dbo.AlarmDetails src
on      dst.id = src.id

您没有指定表格的相关性,因此我假设它们都有id列。

答案 1 :(得分:0)

你需要这样的东西。

update t1 
set
t1.<something1> = t2.<something2>
from
[Alarm].[dbo].[AlarmDetails] t1
join [TMP].[dbo].[AlarmDetails] t2 on (t1.<cols1> = t2.<cols2>)

答案 2 :(得分:0)

UPDATE results SET results.platform_to_insert = (
    SELECT correct_platform
    FROM build
    WHERE results.BuildID=build.BuildID LIMIT 1
);