表级备份

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

您不能使用BACKUP DATABASE命令来备份单个表,除非这个表被分配给它自己的FILEGROUP

您可以按照您的build议将数据导出为CSV文件。 现在为了获得你的表的定义,你可以'脚本' CREATE TABLE脚本。

您可以在SQL Server Management Studio中通过以下方式执行此操作:

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

然后,您可以select您希望编写的表格,还可以select包括任何关联的对象,如约束和索引。

为了得到DATA以及schema ,您必须在设置脚本选项选项卡上selectAdvanced ,在GENERAL部分设置Types of data to scriptselectSchema and Data

希望这可以帮助,但如果你需要进一步的协助,可以直接联系我。

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

出口:

 bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E 

导入:

 bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000 

正如你所看到的,你可以根据任何查询导出,所以你甚至可以用这个来进行增量备份。 另外,它是脚本化的,而不是使用SSMS的这里提到的其他方法。

这里是你需要的步骤。 如果你想要数据,第五步是很重要的。 步骤2是您可以select单个表格的地方。

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

以下是John Sansom的回答

您可以运行下面的查询来获取现有表的备份,该表将创build具有旧表的现有结构的新表以及数据。

 select * into newtablename from oldtablename 

要仅复制表结构,请使用下面的查询。

 select * into newtablename from oldtablename where 1 = 2 

这与qntmfred的解决scheme类似,但使用直接表转储。 这个选项稍微快一点(见BCP文档 ):

出口:

 bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E 

导入:

 bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000 

如果你正在寻找类似于MySQL的DUMP ,那么好消息是:SQL Server 2008 Management Studio增加了这个能力。

在SSMS中,只需右键单击有问题的数据库并select“ 任务”>“生成脚本” 。 然后在选项向导的第二页中,确保select你想要的数据脚本 ,并且它会为你生成相当于一个DUMP文件。

您可以使用Microsoft的免费数据库发布向导来使用SQL脚本(CREATE TABLE和INSERT INTO)生成文本文件。

您可以为单个表创build这样的文件,只需运行SQL脚本即可“还原”包括数据的完整表。

创build新的文件组,把这个表放在上面,只备份这个文件组。

我不知道,是否会匹配这里描述的问题。 我不得不采取一个表的增量备份! (只应该复制新插入的数据)。 我曾经devise过一个DTS包。

  1. 我获取新的logging(基于“状态”列)并将数据传输到目的地。 (通过“转换数据任务”)

  2. 然后我只是更新了“状态”列。 (通过“执行SQL任务”)

我必须正确地修复“工作stream程”。

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

来自: 备份概述(SQL Server)

使用SQL Server导入和导出向导。

  1. SSMS
  2. 打开数据库引擎
  3. Alt键。 单击包含要导出的表的数据库
  4. select“任务”
  5. select“导出数据…”
  6. 按照向导

您可能有两个选项,因为SQL Server不支持表备份。 两者都将从脚本创build表开始。 然后,您可以使用脚本表 – 插入选项,这将生成大量的插入语句,或者您可以使用集成服务(DTS with 2000)或类似的将数据导出为CSV或类似的。

BMC恢复pipe理器(以前称为SQLBacktrack)允许对数据库(又名表)中的单个对象进行时间点恢复。 这不便宜,但是做了一个奇妙的工作: http : //www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html

http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html

如果您希望能够在有人错误地删除行之后恢复表格,则可以查看数据库快照。 您可以很容易地从快照中恢复表(或行的子集)。 请参阅http://msdn.microsoft.com/en-us/library/ms175158.aspx

一个名为SqlTableZip的免费应用程序将完成工作。 基本上,你写任何查询(当然也可以是[select * from table]),应用程序创build一个包含所有数据的压缩文件,以后可以恢复。

链接: http : //www.doccolabs.com/products_sqltablezip.html

Handy Backup自动生成MS SQL Server的转储文件,包括MSSQL 2005/2008。 这些转储是表级二进制文件,包含特定数据库内容的确切副本。

使用Handy Backup进行简单转储,请按照下面的说明操作:

  1. 安装Handy Backup并创build一个新的备份任务。
  2. select步骤2中的“MSSQL”作为数据源。 在新窗口中,标记要备份的数据库。
  3. 在您要存储备份的不同目的地中select。
  4. 在步骤4中,select“完整”备份选项。 如果你需要,build立一个时间戳。
  5. 跳过步骤5,除非您需要压缩或encryption生成的转储文件。
  6. 在第6步中,为任务定期创build日程安排(或者手动运行任务)。
  7. 再次,跳过第7步,在第8步给你的任务命名。你完成了任务!

现在通过点击名称前的图标来运行新的任务,或者等待预定的时间。 手持备份将自动为您的数据库创build一个转储。 然后打开您的备份目标。 你会发现你的MS SQL备份文件夹(或几个文件夹)。 任何这样的文件夹将包含一个表级转储文件,由一些压缩到一个ZIP中的二进制表和设置组成。

其他数据库

Handy Backup可以保存MySQL,MariaDB,PostgreSQL,Oracle,IBM DB2,Lotus Notes和任何具有ODBC驱动程序的通用SQL数据库的转储。 其中一些数据库需要额外的步骤来build立DBMS和手持备份之间的连接。

上述工具经常将SQL数据库转储为表级SQL命令序列,使这些文件可以随时用于需要的任何手动修改。