我正在尝试将数据从生产数据库导出到开发数据库,但出现此错误:
消息错误 0xc0202049:数据流任务 1:插入只读列“id”失败。(SQL Server 导入和导出向导)
有没有办法检查哪一列是因为我有 20 个表,它们都使用列名id
,或者至少得到更好的错误报告?
我正在尝试将数据从生产数据库导出到开发数据库,但出现此错误:
消息错误 0xc0202049:数据流任务 1:插入只读列“id”失败。(SQL Server 导入和导出向导)
有没有办法检查哪一列是因为我有 20 个表,它们都使用列名id
,或者至少得到更好的错误报告?
Edit mappings
当您选择要从中导入和导入的表时,只需单击即可。并选中Enable identity insert
复选框。你应该对每个选择的表都这样做。然后就可以完成导入了。在同样的情况下,它对我有所帮助。
如果列 ID 是标识列,它可能设置为在插入行时自动生成,并且无法直接写入。
要保留从生产环境到测试的链接,请使用:
SET Identity_Insert <TableName> ON
允许您编写标识值。
我所要做的就是:
如果有人知道这样做的不同(更快)方式,请分享
听起来好像您可能正在尝试将值插入已声明为 IDENTITY 字段的列中。
好吧,答案有点晚了,但我还是发布它是为了提供给社区。
我假设您正在尝试复制表(不是部分数据)。我的回答是基于这个假设。
选择要完全复制到目标的表。然后单击“编辑映射”。在这里您可以“启用身份插入”。您还将有其他选项,因此请在按 OK 之前检查屏幕。
如果您在此处不使用 SSMS 的快速版本,则可以创建一个 SSIS 包来创建作业并在将来自动化此过程。您可以检查“立即运行”并按照屏幕了解所有警告和错误的情况。希望你什么也得不到。祝你好运!
Tested with:
(
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86)
Jun 17 2011 00:57:23
Copyright (c) Microsoft Corporation
Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)
)