IF (EXISTS
(SELECT documentsRepo.DocumentRouteNumber
FROM documentsRepo
INNER JOIN dreDocuments ON documentsRepo.DocumentRouteNumber = dreDocuments.DocumentRouteNumber))
UPDATE DocumentsRepo
SET documentsRepo.documentTypeID = dreDocuments.DocumentTypeID,
documentsRepo.DepartmentID = dreDocuments.DepartmentID
FROM documentsRepo
INNER JOIN dreDocuments ON documentsRepo.DocumentRouteNumber = dreDocuments.DocumentRouteNumber ELSE
INSERT INTO documentsRepo (DocumentTypeID, DepartmentID, DocumentRouteNumber, SOURCE, Destination)
SELECT DocumentTypeID,
DepartmentID,
DocumentRouteNumber,
SOURCE,
Destination
FROM dreDocuments
我使用上面的代码来更新或插入记录。它在第一个记录插入中正常工作。更新工作完美。但是下一个插入批处理不起作用。
答案 0 :(得分:1)
您可以使用MERGE或尝试使用以下代码:
SET NOCOUNT ON
UPDATE DocumentsRepo SET .... ;
IF(@@Rowcount=0)
BEGIN
INSERT INTO DocumentsRepo .....;
END