我必须将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数据库上的状态代码....
答案 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 <> ''
请注意数据库名称后的双点。