【问题标题】:SQL insert not executing if data already present如果数据已经存在,则 SQL 插入不执行
【发布时间】:2013-09-27 10:53:33
【问题描述】:
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

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

【问题讨论】:

标签: sql insert sql-update


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2017-08-04
    • 2017-04-24
    • 2023-03-21
    相关资源
    最近更新 更多