【发布时间】:2010-11-08 19:57:51
【问题描述】:
SQL Server 2005 问题:
我正在处理一个数据转换项目,我正在处理 80k+ 行并将它们从一个表移动到另一个表。当我运行 TSQL 时,它会出现与转换类型或其他有关的各种错误。有没有办法找出导致错误的行?
======================
更新:
我正在执行 INSERT INTO TABLE1 (...) SELECT ... FROM TABLE2 Table2 只是一堆 varchar 字段,其中 TABLE1 具有正确的类型。
这个脚本将被放入一个存储过程中并从一个 SSIS 包中执行。 SSIS 包首先将 5 个大型平面文件导入 TABLE2。
以下是示例错误消息:“将 char 数据类型转换为日期时间数据类型导致日期时间值超出范围。”
有很多日期字段。在表 2 中,有类似“02/05/1075”的生日数据值。我想检查导致错误的每一行,以便我可以向负责不良数据的部门报告,以便他们进行更正。
【问题讨论】:
-
你能给我们一些错误的例子吗?您如何使用插入语句或游标移动数据?据我所知,确实没有日志文件可以准确地告诉您错误是什么,但也许通过一些错误消息,我们可以为您指明正确的方向。
-
请注意您的标签选择。
-
如果是转换问题,可以使用 ISNUMERIC 和 ISDATE 函数分别帮助测试字符串是否可以成功地隐式转换为数字或日期。根据我的经验,ISNUMERIC 虽然在逗号和空格方面存在缺陷。但是,是的,您的 OP 应该更具体地说明您遇到的错误。
-
这也可能取决于您正在执行的 T-SQL 代码,或者这是否在 SSIS 中,还是什么?如果没有细节,我看不出如何回答这个问题。
-
刚刚更新了我的问题,提供了更多详细信息。谢谢!
标签: sql-server sql-server-2005 tsql ssis