正在初始化连接 (成功)
- 正在设置 SQL 命令 (成功)
- 正在设置源连接 (成功)
- 正在设置目标连接 (成功)
- 正在验证 (成功)
- 准备执行 (成功)
- 执行之前 (成功)
- 正在执行 (成功)
- 正在复制到 [dbo].[SF_ADClass] (错误)
消息
* 错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。
已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 10.0” Hresult: 0x80004005 说明:“语句已终止。”。
已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 10.0” Hresult: 0x80004005 说明:“违反了 PRIMARY KEY 约束 'PK_SF_ADClass'。不能在对象 'dbo.SF_ADClass' 中插入重复键。”。
(SQL Server 导入和导出向导)
* 错误 0xc0209029: 数据流任务 1: SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“输入“Destination Input”(56)”失败,错误代码为 0xC020907B,而且针对“输入“Destination Input”(56)”的错误行处理设置指定一旦出错就失败。在指定组件的指定对象上出错。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)
* 错误 0xc0047022: 数据流任务 1: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“Destination Input”(56)时,组件“目标 - SF_ADClass”(43)的 ProcessInput 方法失败,错误代码为 0xC0209029。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)
- 执行之后 (成功)
消息
* 信息 0x402090df: 数据流任务 1: “组件“目标 - SF_ADClass”(43)”中的数据插入操作的最终提交已开始。
(SQL Server 导入和导出向导)
* 信息 0x402090e0: 数据流任务 1: “组件“目标 - SF_ADClass”(43)”中的数据插入操作的最终提交已结束。
(SQL Server 导入和导出向导)
* 信息 0x4004300b: 数据流任务 1: “组件“目标 - SF_ADClass”(43)”已写入 7 行。
(SQL Server 导入和导出向导)
为什么会这样呢?
4 个解决方案
#1
你这明明是导入操作嘛,提示说的也很清楚了,违反了主键约束
导入的数据有重复值
ps:是不是你本来想导出,然后源数据与目标数据选反了?
导入的数据有重复值
ps:是不是你本来想导出,然后源数据与目标数据选反了?
#2
从ADClass表格读取数据,再导入到ADClass?
#3
违反了 PRIMARY KEY 约束 'PK_SF_ADClass'。不能在对象 'dbo.SF_ADClass' 中插入重复键
这个重复有两个可能
1、原表就有重复,但是原表没有约束
2、虽然原表没有重复,但是目的表数据与原表数据有重复
这个重复有两个可能
1、原表就有重复,但是原表没有约束
2、虽然原表没有重复,但是目的表数据与原表数据有重复
#4
请先使用语句
若是单一主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol=t1.PKCol
group PKCol
having COUNT(PKCol)>1
)
若是复合主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol1=t1.PKCol1 and t2.PKCol2=t1.PKCol2
group PKCol1,PKCol12
having COUNT(PKCol1+PKCol12)>1
)
找出重复的主键,干掉或update掉重复的部分
然后再导入就性。
导致原因正如3L所说
若是单一主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol=t1.PKCol
group PKCol
having COUNT(PKCol)>1
)
若是复合主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol1=t1.PKCol1 and t2.PKCol2=t1.PKCol2
group PKCol1,PKCol12
having COUNT(PKCol1+PKCol12)>1
)
找出重复的主键,干掉或update掉重复的部分
然后再导入就性。
导致原因正如3L所说
#1
你这明明是导入操作嘛,提示说的也很清楚了,违反了主键约束
导入的数据有重复值
ps:是不是你本来想导出,然后源数据与目标数据选反了?
导入的数据有重复值
ps:是不是你本来想导出,然后源数据与目标数据选反了?
#2
从ADClass表格读取数据,再导入到ADClass?
#3
违反了 PRIMARY KEY 约束 'PK_SF_ADClass'。不能在对象 'dbo.SF_ADClass' 中插入重复键
这个重复有两个可能
1、原表就有重复,但是原表没有约束
2、虽然原表没有重复,但是目的表数据与原表数据有重复
这个重复有两个可能
1、原表就有重复,但是原表没有约束
2、虽然原表没有重复,但是目的表数据与原表数据有重复
#4
请先使用语句
若是单一主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol=t1.PKCol
group PKCol
having COUNT(PKCol)>1
)
若是复合主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol1=t1.PKCol1 and t2.PKCol2=t1.PKCol2
group PKCol1,PKCol12
having COUNT(PKCol1+PKCol12)>1
)
找出重复的主键,干掉或update掉重复的部分
然后再导入就性。
导致原因正如3L所说
若是单一主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol=t1.PKCol
group PKCol
having COUNT(PKCol)>1
)
若是复合主键
select * from dbo.SF_ADClass as t1
where exists
(
select 1 from dbo.SF_ADClass AS t2
where t2.PKCol1=t1.PKCol1 and t2.PKCol2=t1.PKCol2
group PKCol1,PKCol12
having COUNT(PKCol1+PKCol12)>1
)
找出重复的主键,干掉或update掉重复的部分
然后再导入就性。
导致原因正如3L所说