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

时间:2015-01-09 05:48:38

标签: sql-server sql-server-2008

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

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

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

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

1 个答案:

答案 0 :(得分:0)

使用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