有两个表Document
和DocumentPos
。在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
]中加入。
尝试一下
...
AND NOT EXISTS
(
SELECT 1
FROM [dbo].[DocumentPos] AS dp
WHERE dp.[GUID] = cqdp.[GUID]
);
只需将源链接到Guid上的目标。