表级备份

use*_*431 91 sql-server backup database-table

如何在MS SQL Server 2005/2008中进行表级备份(转储)?

Joh*_*som 88

您不能使用该BACKUP DATABASE命令备份单个表,除非当前有问题的表已分配给它自己FILEGROUP.

正如您所建议的那样,您可以执行的操作是将表格数据导出为CSV文件.现在,为了获得表的定义,您可以"编写" CREATE TABLE脚本.

您可以在SQL Server Management Studio中执行此操作,方法是:

右键单击数据库>任务>生成脚本

然后,您可以选择要编写脚本的表,还可以选择包含任何关联对象,例如约束和索引.

为了获得DATA与刚一起schema,你要选择Advanced一组脚本选项选项卡上,并在GENERAL部分设定的Types of data to script选择Schema and Data

希望这有帮助,但如果您需要进一步的帮助,请随时直接与我联系.

  • John,别忘了提到为了获得DATA以及架构,你必须在set scripting options选项卡上选择`Advanced`,并在GENERAL部分中设置`数据类型为脚本`选择`架构和数据`.这是我第一次这样做时并不明显. (25认同)

ken*_*ner 54

我正在使用批量复制实用程序来实现表级备份

出口:

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E
Run Code Online (Sandbox Code Playgroud)

进口:

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Run Code Online (Sandbox Code Playgroud)

如您所见,您可以根据任何查询进行导出,因此您甚至可以使用此进行增量备份.此外,它是可编写脚本的,而不是此处提到的使用SSMS的其他方法.


Ale*_*x C 45

以下是您需要的步骤.如果您想要数据,Step5很重要.您可以在步骤2中选择单个表.

编辑堆栈的版本不太可读...这是一个全尺寸的图像http://i.imgur.com/y6ZCL.jpg

以下是John Sansom回答的步骤


小智 19

您可以运行以下查询来备份现有表,该表将创建具有旧表的现有结构的新表以及数据.

select * into newtablename from oldtablename
Run Code Online (Sandbox Code Playgroud)

要仅复制表结构,请使用以下查询.

select * into newtablename from oldtablename where 1 = 2
Run Code Online (Sandbox Code Playgroud)


Die*_*ego 6

这类似于qntmfred的解决方案,但使用直接表转储.此选项稍快一些(请参阅BCP文档):

出口:

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E
Run Code Online (Sandbox Code Playgroud)

进口:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
Run Code Online (Sandbox Code Playgroud)


Mit*_*eat 1

每个恢复模型都允许您备份整个或部分 SQL Server 数据库或数据库的单个文件或文件组。无法创建表级备份

来自:备份概述 (SQL Server)