从 sql server 2008 的数据库中备份单个表及其数据

Posted

技术标签:

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

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

我该怎么做?

【问题讨论】:

SQL 导入/导出向导。在 SMSS 中右键单击您的数据库/选择项目导出 我想用脚本来做这个 请接受MGOwen的回答 【参考方案1】:
select * into mytable_backup from mytable

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

【讨论】:

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

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

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

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

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

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

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

和this previous answer有区别吗?【参考方案6】:

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

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

【讨论】:

和this previous answer有区别吗?【参考方案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】:

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

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

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

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

【讨论】:

【参考方案10】:

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

【讨论】:

以上是关于从 sql server 2008 的数据库中备份单个表及其数据的主要内容,如果未能解决你的问题,请参考以下文章

从提示符运行 powershell 脚本时,SQL Server 2008 不使用备份设备路径

怎么备份SQL Server 2008数据库

从备份文件bak中识别SQL Server的版本

如何备份sqlserver数据

SQL Server2008怎么设置自动备份数据库

SQL Server 2008怎么自动备份数据库