错误0xc0202049:数据流任务1:插入只读列时失败

joh*_* Gu 77 sql-server ssis sql-server-2008

我正在使用SQL Server 2008导入和导出向导.我需要导入一个数据库.我打开了SQL服务器导入/导出向导,然后执行了以下操作: -

  1. 对于目的地,我选择了"SQL server native client 10".

  2. 然后我从一个或多个表或视图中选择了复制数据.

  3. SSIS立即运行

但我得到以下错误,

行动停止了......

  • 初始化数据流任务(成功)

  • 初始化连接(成功)

  • 设置SQL命令(成功)

  • 设置源连接(成功)

  • 设置目标连接(成功)

  • 验证(错误)

消息错误0xc0202049:数据流任务1:未能插入只读列"ActionID".(SQL Server导入和导出向导)

错误0xc0202045:数据流任务1:列元数据验证失败.(SQL Server导入和导出向导)

错误0xc004706b:数据流任务1:"组件"目标 - AuditActions"(22)"验证失败并返回验证状态"VS_ISBROKEN".(SQL Server导入和导出向导)

似乎我无法导入标识列和时间戳列,所以我如何强制导入这些值?

bil*_*nkc 204

考虑到Kishore的答案,如果您正在修改包,那么这种方法是有效的.由于您使用的是导入/导出向导,因此更直接的方法是选中Enable Identity InsertColumn Mappings选项卡上的框.

在"导入导出向导"中,选择要复制的表后,单击Edit Mappings...按钮

在此输入图像描述

在结果屏幕中,单击Enable identity insert属性,您的身份将被复制.

在此输入图像描述

与发布SET IDENTITY_INSERT TableName ON和关闭相同的净结果,但这是在构建时自动完成的.

  • 如果要导入多个表,则可以在列表中选择多个表,然后单击"编辑映射"以使"启用标识插入"选项仅应用于所有选定的表. (10认同)

小智 26

在导入日期之前,执行以下查询以设置标识插入

SET IDENTITY_INSERT TableName ON
Run Code Online (Sandbox Code Playgroud)

//执行导入操作

在导入日期之后执行以下查询以设置标识插入关闭

SET IDENTITY_INSERT TableName OFF
Run Code Online (Sandbox Code Playgroud)