如何使用SELECT和LinkedServer在SQL INSERT INTO查询中添加NOT EXISTS

问题描述 投票:0回答:1

有两个表DocumentDocumentPos。在Document中有列GUID,在DocumentPos中有列DocumentGUID,它引用表Document

INSERT INTO [dbo].[DocumentPos]
           (
            [GUID]
           ,[DocumentGUID]
           ,[Number]
           ,[Price]
           )
     SELECT
           cqdp.GUID,
           cqdp.DocumentGUID,           
           cqdp.Number
           cqdp.Price
FROM [sqlserver\instance].[testdb].[dbo].[documentpos] cqdp
INNER JOIN [sqlserver\instance].[testdb].[dbo].[document] cqd ON cqd.GUID = cqdp.DocumentGUID
WHERE cqdp.DocumentGUID  IN (
SELECT GUID
FROM [sqlserver\instance].[testdb].[dbo].[document]
) 
AND NOT EXISTS 
(
...
)

但是如何包含NOT EXISTS可以避免查询尝试插入列GUID上已经存在的值?我想添加一个检查,以确定GUID中是否已经存在DocumentPos,我想从[sqlserver\instance].[testdb].[dbo].[documentpos]中加入。

sql-server insert linked-server
1个回答
0
投票

尝试一下

...
AND NOT EXISTS 
(
  SELECT 1
  FROM [dbo].[DocumentPos] AS dp
  WHERE dp.[GUID] = cqdp.[GUID]
);

只需将源链接到Guid上的目标。

© www.soinside.com 2019 - 2024. All rights reserved.