【问题标题】:SQL Server 2008 R2 Data Export ProblemsSQL Server 2008 R2 数据导出问题
【发布时间】:2012-08-28 15:08:07
【问题描述】:

我正在尝试将数据从生产数据库导出到开发数据库,​​但出现此错误:

消息错误 0xc0202049:数据流任务 1:插入失败 只读列“id”。 (SQL Server 导入导出向导)

有没有办法检查哪一列是因为我有 20 个表,它们都使用列名 id 或至少得到更好的错误报告?

【问题讨论】:

  • 我猜这与您对开发数据库中任何表的权限有关,而不是与您尝试将数据导入的 20 个表中的任何一个表有关。您在 dev 数据库中使用的用户 id 是否有任何限制?
  • 不,我是管理员,所以我的用户名有权完成任何任务

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


【解决方案1】:

当您选择要从中导入和导入的表时,只需单击Edit mappings。并检查Enable identity insert 复选框。你应该为每个选择的桌子这样做。然后就可以完成导入了。它在同样的情况下帮助了我。

【讨论】:

    【解决方案2】:

    如果列 ID 是标识列,它可能设置为在插入行时自动生成,并且无法直接写入。

    要保留从生产环境到测试的链接,请使用:

    SET Identity_Insert <TableName> ON
    

    允许您编写身份值。

    【讨论】:

    • 我所有的 ID 列都会自动生成它们的值。我想我必须运行你的命令 20 次?(每个表一次)
    • 如果您的 ID 是全局的,您只需为负责生成值的表运行它。其他表可能未指定为 IDENTITY 列。
    • 在你的例子中你有 。我用我的一张桌子试了一下,但没有用。这是错误:'表'用户'没有身份属性。无法执行 SET 操作。'
    • 身份来自的 [users] 表是什么?它会建议其他表中的 [ID] 列代表用户 ID。一个有用的信息来源是: sp_help [TableName];这将为您提供有关表中列的信息,您要查找的是在输出中有一个条目的表,该条目详细说明了是否存在任何标识列。注意:您希望在测试/目标环境中应用设置,而不是在生产环境中,因为这些是您要插入的身份。
    • 我刚刚从 ID 中删除了自动生成的功能,现在它似乎工作正常。感谢您的帮助
    【解决方案3】:

    我所要做的就是:

    • 右键单击列(在本例中为“ID”)
    • 选择修改
    • 在“列属性”内向下滚动,直到您看到身份规范
    • 展开视图并从下拉菜单中选择“否”。

    如果有人知道这样做的不同(更快)方式,请分享

    【讨论】:

      【解决方案4】:

      在我看来,您可能正在尝试将值插入到已声明为 IDENTITY 字段的列中。

      【讨论】:

        【解决方案5】:

        嗯,答案有点晚了,但我还是发布它是为了提供给社区。​​p>

        我假设您正在尝试复制表(不是部分数据)。我的回答是基于这个假设。

        1. 通过 SSMS 中的对象资源管理器连接到源数据库。
        2. 右键单击要复制其表的数据库
        3. 转到“任务”-->“导出”
        4. 选择您的源服务器和目标服务器,如果您不想在手之前运行其他脚本,只需按下一步(“从一个或多个表或视图复制数据”)。现在您可以选择要复制到目标的表。

        选择要完全复制到目标的表。然后单击“编辑映射”。在这里您可以“启用身份插入”。您还有其他选项,因此请在按 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)
        )
        

        【讨论】:

          猜你喜欢
          • 2013-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-18
          • 1970-01-01
          相关资源
          最近更新 更多