1

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

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

3 回答 3

1

如果没有关于对目标表施加的约束的任何附加信息,一个非常普遍、缓慢的解决方案将是

  1. 在选定行上的游标循环
  2. 在try/catch中插入任何行
  3. 关于异常输出行和错误消息

对于您的问题的具体答案,请提供更多信息。

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

于 2013-03-12T09:38:39.097 回答
0

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

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

  2. 外键违规

  3. 约束违规。

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

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

于 2013-03-12T09:20:14.480 回答
0

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

INSERT INTO Person.Person (FirstName, LastName,Email)
SELECT FirstName, LastName, Email
FROM   Person.Contact
于 2013-03-12T09:20:52.370 回答