如果数据已存在,则SQL插入不执行

时间:2013-09-27 10:53:33

标签: sql insert sql-update

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

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

1 个答案:

答案 0 :(得分:1)

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

SET NOCOUNT ON
UPDATE DocumentsRepo SET .... ; 
IF(@@Rowcount=0)
BEGIN
     INSERT INTO DocumentsRepo .....;
END