从一个数据库中选择以更新另一个

时间:2011-11-07 19:45:30

标签: sql sql-server

我必须将sql server中的一个表从一个数据库更新到另一个数据库,我想知道如何使用

这是我的例子

UPDATE [Logix].[sysdba].[TICKET] (
    STATUSCODE) 
SELECT TICKETID, GM_NUMBER, STATUSCODE
 FROM [Logix_Dev].[sysdba].[TICKET]
 where GM_NUMBER <> ''

但我觉得这是错误的语法...基本上我想要做的是从Logix_Dev数据库中的TICKET表中选择所有记录,并更新TICKETID匹配的Logix数据库上的状态代码....

2 个答案:

答案 0 :(得分:6)

使用别名可以让您的生活更轻松(同一个实例):

UPDATE l
SET l.STATUSCODE=s.someVal
FROM Logix.sysdba.Ticket l
INNER JOIN Logix_dev.sysdba.ticket s
ON s.ID = l.ID

当然,您需要将s.ID和l.ID替换为相应的列(TicketID?):

UPDATE l 
SET l.STATUSCODE=s.STATUSCODE 
FROM Logix.sysdba.Ticket l 
INNER JOIN Logix_dev.sysdba.ticket s 
ON s.TicketID = l.TicketID 
WHERE s.GM_NUMBER = ''

如果他们在同一个实例上,则不需要两个点(..)。如果它是链接服务器或另一个实例,则需要两个点(..):

链接服务器:

UPDATE l
SET l.STATUSCODE=s.someVal
FROM Logix.sysdba.Ticket l
INNER JOIN Logix_dev..sysdba.ticket s
ON s.ID = l.ID

答案 1 :(得分:0)

这是:

UPDATE [Logix].[sysdba].[TICKET] (
    STATUSCODE) 
SELECT TICKETID, GM_NUMBER, STATUSCODE
 FROM [Logix_Dev]..[sysdba].[TICKET]
 where GM_NUMBER <> ''

请注意数据库名称后的双点