从 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 的数据库中备份单个表及其数据的主要内容,如果未能解决你的问题,请参考以下文章