【发布时间】:2017-05-18 08:04:45
【问题描述】:
我目前正在 SQL Server 2012 上的 T-SQL 中处理存储过程。我正在尝试从另一个表更新或插入表条目。
目前,例如,如果原始表有 1 个条目,我只能更新 1 条记录。如果我从导入表中获得 10 个条目,我想更新 1 个条目并将剩余的 9 条记录添加到我的表中。
临时表(新值)
#tmpDelivery (VersionId INT, DeliveryModelId INT)
交货表(原件,待更新)
[MySchema].[Delivery] (DeliveryId INT, DeliveryModelId INT, VersionId INT)
我当前的脚本如下所示:
UPDATE [MySchema].[Delivery]
SET DeliveryModelId = [D].DeliveryModelId
FROM #tmpDelivery [D]
WHERE [MySchema].[Delivery].VersionId = 1
AND [D].VersionId = [MySchema].[Delivery].VersionId
IF @@ROWCOUNT = 0
INSERT INTO [MySchema].[Delivery] ([DeliveryModelId], [VersionId])
SELECT DeliveryModelId, VersionId
FROM #tmpDelivery
这个查询不知何故不能正常工作,如果有 1 个条目,它只会更新 1 个条目,例如...
你知道如何解决这个问题吗?
非常感谢!
【问题讨论】:
-
在这种情况下为什么不使用
MERGE语句?
标签: sql-server tsql