我有一個INSERT語句,它將大量數據插入tableB的tableA中。
這裏是一個非常簡單的代碼例如:以毫秒爲單位獲取錯誤的行ID sql
INSERT [dbo].[tableA]
SELECT field1 [field_1]
FROM [dbo].[tableB]
WHERE [codeID] IN (SELECT [codeID] FROM #tempTable WHERE RecordMarker = 1)
有一個臨時表至極抱codeIDs(至少1個或更多個)需要插入到表A。
但是tableB中會有不合法的數據,無法插入tableA中。例如,一個數字(30,2)字段不能映射到數字(13,2)。在這種情況下,我得到一個excetpion,聲明已被終止。
如何獲取CodeID或tableB中的錯誤行號如果出現錯誤?現在我只有錯誤信息但沒有行號。
例如: 消息8115,級別16,狀態8,行1 算術溢出錯誤將數值轉換爲數據類型數值。 該聲明已被終止。
編輯:有不同字段類型的表中有多個字段。所以數字類型只是一個例子。
你可以將其轉換爲一個循環進行調試。 – 2014-09-04 13:31:09
現在我做到了。循環通過。但不太有效,因爲它非常緩慢。表現並不是最好的。 – Blackstar 2014-09-04 13:33:17
但你只是想知道行號。我假定找到無效數據的來源。一旦你解決了核心問題,你可以再次使用基於集合的方法。 – 2014-09-04 13:37:17