【问题标题】:Backup a single table with its data from a database in sql server 2008从 sql server 2008 的数据库中备份单个表及其数据
【发布时间】:2013-10-31 04:12:49
【问题描述】:

我想使用脚本从 SQL Server 的数据库中获取单个表及其数据的备份。

我该怎么做?

【问题讨论】:

  • SQL 导入/导出向导。在 SMSS 中右键单击您的数据库/选择项目导出
  • 我想用脚本来做这个
  • 请接受MGOwen的回答

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


【解决方案1】:
select * into mytable_backup from mytable

复制表 mytable 及其中的每一行,称为 mytable_backup

【讨论】:

  • 很高兴这个查询实际上会创建“mytable_backup”表。我没想到,并创建了一个新表来备份。
  • 我经常使用这个将数据备份到不同的模式,我只是注意到在某些情况下,有行 MISSING !目标可能不完整。我不确定为什么。最好在此类备份后检查行数。
  • 重要:复制表没有原始表的索引、键或约束!因此,它并没有真正“复制(完全)及其数据”,而只是复制字段和数据。
【解决方案2】:

您可以使用 SSMS 上的“为数据库对象生成脚本”功能。

  1. 右键单击目标数据库
  2. 选择任务>生成脚本
  3. 选择所需的表或特定对象
  4. 点击高级按钮
  5. 在常规下,选择要编写脚本的数据类型上的值。您可以选择仅数据、仅架构以及架构和数据。架构和数据包括表创建和生成脚本上的实际数据。
  6. 单击下一步直到向导完成

这个解决了我的挑战。
希望这对您也有帮助。

【讨论】:

    【解决方案3】:

    您可以通过多种方式收回餐桌。

    1. BCP(批量复制程序)
    2. 使用数据生成表格脚本
    3. 使用 SELECT INTO 复制表,例如 here
    4. 将表数据直接保存在平面文件中
    5. 使用 SSIS 将数据导出到任何目的地

    【讨论】:

    • 虽然此代码可以回答问题,但提供有关它为什么和/或如何回答问题的额外上下文将显着提高其长期价值。请edit你的答案添加一些解释。
    • 如果是日常备份,我们可以使用replication来复制你要备份的表。然后,备份订户数据库。
    • @CodeMouse92 同意。我投了反对票,因为答案很短而且缺乏解释。
    【解决方案4】:

    您可以使用以下步骤创建表格脚本及其数据:

    1. 右键单击数据库。
    2. 选择任务 > 生成脚本 ...
    3. 点击下一步。
    4. 点击下一步。
    5. 在表/视图选项中,将脚本数据设置为 True;然后点击下一步。
    6. 选中表格复选框并单击下一步。
    7. 选择您的表名并单击下一步。
    8. 单击下一步直到向导完成。

    欲了解更多信息,请参阅Eric Johnson's blog.

    【讨论】:

      【解决方案5】:

      尝试使用以下查询,它将在相同或其他数据库(“数据库”)中创建相应的表。

      SELECT * INTO DataBase.dbo.BackUpTable FROM SourceDataBase.dbo.SourceTable
      

      【讨论】:

      【解决方案6】:

      使用 sql server 2008 中数据库中的数据备份单个表

      SELECT * INTO  [dbo].[tbl_NewTable] 
      FROM [dbo].[tbl_OldTable]
      

      【讨论】:

      【解决方案7】:

      将表放在它自己的文件组中。然后,您可以使用常规 SQL Server 内置备份来备份实际上备份表的文件组。

      要备份文件组,请参阅: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-files-and-filegroups-sql-server

      要在非默认文件组上创建表(很简单),请参见: Create a table on a filegroup other than the default

      【讨论】:

        【解决方案8】:

        此查询为我运行(用于 MySQL)。 mytable_backup 必须在此查询运行之前存在。

        insert into mytable_backup select * from mytable
        

        【讨论】:

        • 问题是关于 SQL Server 而不是 MySQL。
        【解决方案9】:

        如果您需要从数据库的多个表中备份一个表,您可以采取的另一种方法是:

        1. 从数据库生成特定表的脚本(右键单击数据库,单击任务 > 生成脚本...

        2. 在查询编辑器中运行脚本。您必须将脚本中的第一行 (USE DatabaseName) 更改/添加到新数据库,以避免出现“数据库已存在”错误。

        3. 右键单击新创建的数据库,然后单击任务 > 备份... 备份将包含来自原始数据库的选定表。

        【讨论】:

          【解决方案10】:

          要在本地文件系统上的文件中获取副本,Windows 开始按钮菜单中的这个摇摇欲坠的实用程序起作用了: "C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTSWizard.exe"

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多