1
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

我正在使用上面的代码来更新或插入记录。它在第一条记录插入中正常工作。更新完美。但是下一个插入批次不起作用。

4

1 回答 1

1

您可以使用 MERGE 或尝试使用以下代码:

SET NOCOUNT ON
UPDATE DocumentsRepo SET .... ; 
IF(@@Rowcount=0)
BEGIN
     INSERT INTO DocumentsRepo .....;
END
于 2013-09-27T12:14:52.527 回答