如何在sql表中找到错误值

时间:2013-03-12 09:17:45

标签: sql sql-server sql-server-2008

我将值从一个表插入到另一个表中。表中有100000条记录。但是当我开始将值从一个表插入另一个表时,我的数据中的任何行都存在问题。我不知道究竟是哪里。那么我怎么知道哪个行值是错误的,因为insert语句没有完成?错误之后停止在表中插入任何内容。 这是我使用的简单陈述:

INSERT INTO Person (FirstName, LastName,Email)
SELECT FirstName, LastName, Email
FROM Person.Contact

3 个答案:

答案 0 :(得分:1)

如果没有关于对目标表施加的约束的任何其他信息,那么非常通用的缓慢解决方案将是

  1. 所选行上的游标循环
  2. try/catch
  3. 中插入任何行
  4. 关于异常输出行和错误消息
  5. 有关问题的具体答案,请提供更多信息。

    另一种方法是使用SSIS:在这里,您可以为错误的行提供单独的通道。此通道可以通向一个单独的表,收集导致错误的所有行。

答案 1 :(得分:0)

问题很难理解,但通常的嫌疑人是:

  1. 尝试将Null插入不可为空的列

  2. 外键违规

  3. 违规行为。

  4. 尝试插入错误的数据类型。

  5. 请编辑您的问题以添加错误消息。

答案 2 :(得分:0)

我猜Person是您架构的名称,所以也许你的意思是

INSERT INTO Person.Person (FirstName, LastName,Email)
SELECT FirstName, LastName, Email
FROM   Person.Contact