使用单独服务器中的表之间的内部联接删除

时间:2012-11-20 22:19:58

标签: sql sql-server

我使用sp_addlinkedserver连接2台服务器。 然后我需要使用内连接删除。我的sql是

DELETE [server1].[database1].[dbo].orders 
FROM [server1].[database1].[dbo].orders
INNER JOIN [server2].[database2].[dbo].DeletedKeys
    ON [server1].[database1].[dbo].orders.ID = 
           [server2].[database2].[dbo].DeletedKeys.Id

但它给出了一个错误:

  

多部分标识符" [server1]。[database1]。[dbo] .orders.ID"无法受约束   多部分标识符" [server2]。[database2]。[dbo] .DeletedKeys.Id"无法受约束。

2 个答案:

答案 0 :(得分:1)

如果您将4部分名称别名怎么办?

DELETE o
FROM 
    [server1].[database1].[dbo].orders o
    INNER JOIN [server2].[database2].[dbo].DeletedKeys dk
        ON o.ID = dk.Id

答案 1 :(得分:0)

如果您已成功connected and logged in两台服务器,则以下查询将完成此任务。

DELETE [server1].[database1].[dbo].orders 
WHERE  ID IN 
     (SELECT dk.Id FROM [server2].[database2].[dbo].DeletedKeys dk)