获取在 SQL Server 中批量更新数据时出错的行



假设我们在表变量@tblMessageDetails中有 10 行。如果其中任何一个失败,我需要单独获取失败的行完整数据。

这样做的目的是假设一行失败,我需要在删除错误后处理其他 9 行。

UPDATE tblDelivery  
SET ArrivedDateTime = CONVERT(datetime, M.ArrivedDateTime, 113),MessageDetails=MessageDetails1
FROM tblDelivery    
INNER JOIN @tblMessageDetails M ON M.PKDelivery = tblDelivery.PKDelivery 

有谁知道如何解决这个问题?

使用Isdate()函数过滤不良记录。试试这个。

UPDATE tblDelivery
SET    ArrivedDateTime = CONVERT(DATETIME, M.ArrivedDateTime, 113)
FROM   tblDelivery
       INNER JOIN (SELECT ArrivedDateTime,
                          PKDelivery
                   FROM   @tblMessageDetails
                   WHERE  Isdate(ArrivedDateTime) = 1) M
               ON M.PKDelivery = tblDelivery.PKDelivery 

最新更新