SQL Server: Find out what row caused the TSQL to fail (SSIS)

前端 未结 7 1135
醉话见心
醉话见心 2021-01-13 01:57

SQL Server 2005 Question:

I\'m working on a data conversion project where I\'m taking 80k+ rows and moving them from one table to another. When I run the TSQL, it bo

相关标签:
7条回答
  • 2021-01-13 02:24

    if you are looping, add prints in the loop.

    if you are using set based operations, add a restrictive WHERE condition and run it. Keep running it (each time making it more and more restrictive) until you can find the row in the data. if you could run it for blocks of N rows, then just select out those rows and look at them.

    ADD CASE statements to catch the problems (converting that bad value to NULL or whetever) and put a value in a new FlagColumn telling you the type of problem:

    CASE WHEN ISNUMERIC(x)!=1 then NULL ELSE x END as x
    ,CASE WHEN ISNUMERIC(x)!=1 then 'not numeric' else NULL END AS FlagColumn
    

    then select out the new converted data where FlagColumn IS NOT NULL

    you could try using select statements with isnumeric() or isdate() functions on the various columns of the source data

    EDIT

    There are many date fields. In TABLE2, there are data values like '02/05/1075' for Birthdate. I want to examine each row that is causing the error, so I can report to the department responsible for the bad data so they can correct it.

    Use this to return all bad date rows:

    SELECT * FROM YourTable WHERE ISDATE(YourDateColumn)!=1
    
    0 讨论(0)
提交回复
热议问题