如何使用 T-SQL 脚本备份 SQL Server 2008 中的特定表

Fir*_*ali 16 sql-server-2008 sql-server sql-server-2008-r2

我想将数据库中可用的特定表备份到一个.bak文件中,所有这些都应该使用 T-SQL 脚本来完成。

Tuf*_*and 12

备份类型取决于 SQL Server 恢复模型。每个恢复模型都允许您备份整个或部分 SQL Server 数据库或数据库的单个文件或文件组。不能创建表级备份,没有这个选项。但是有一个解决方法

可以在 SQL Server 中备份 SQL Server 表。有多种替代方法可以在 sql SQL Server 中备份表

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

在这里我只解释你可能知道的第一个休息

方法一——使用BCP备份sql表(BULK COPY PROGRAM)

要备份位于 SQL Server AdventureWorks 中的名为“Person.Contact”的 SQL 表,我们需要执行以下脚本,它

-- SQL Table Backup
-- Developed by DBATAG, www.DBATAG.com
DECLARE @table VARCHAR(128),
@file VARCHAR(255),
@cmd VARCHAR(512)
SET @table = 'AdventureWorks.Person.Contact' --  Table Name which you want    to backup
SET @file = 'C:\MSSQL\Backup\' + @table + '_' + CONVERT(CHAR(8), GETDATE(), 112) --  Replace C:\MSSQL\Backup\ to destination dir where you want to place table data backup
+ '.dat'
SET @cmd = 'bcp ' + @table + ' out ' + @file + ' -n -T '
EXEC master..xp_cmdshell @cmd
Run Code Online (Sandbox Code Playgroud)

输出

在此处输入图片说明

笔记 -

  1. 您必须具有批量导入/导出权限
  2. 在上面的脚本中 -n 表示本机 SQL 数据类型,这是还原过程中的关键
  3. -T 表示您正在使用 Windows 身份验证连接到 SQL Server,如果您想使用 SQL Server 身份验证进行连接,请使用 -U -P
  4. 这也将告诉您数据传输速度,在我的情况下,这是每秒 212468.08 行。
  5. 此命令完成后,将创建一个名为“AdventureWorks.Person.Contact_20120222”的文件,该文件是指定的目标文件夹

或者,您可以通过命令提示符运行 BCP 并在命令提示符下键入以下命令,这两个操作执行相同的活动,但我喜欢上面提到的方法,因为它是打开命令提示符并键入的保存类型。

bcp AdventureWorks.Person.Contact out C:\MSSQL\Backup\AdventureWorks.Person.Contact_20120222.dat -n -T
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


KAS*_*DBA 10

方法一:

如果您只关心表中的数据以及要在同一数据库和服务器中本地使用的数据,您可以使用以下查询来备份所选表:

SELECT * INTO newtable1
FROM originalTable1
Run Code Online (Sandbox Code Playgroud)

--- 对于表 2

SELECT * INTO newtable2
FROM originalTable2
Run Code Online (Sandbox Code Playgroud)

等等......对于n张桌子

此语句将创建名为 newtable1, newtable1,.. 的表,因此您不必事先创建它。

注意* 这种方法进行备份的速度非常快,但主要的缺点是它不携带表的键、索引和约束,并且备份存储在数据库中而不是文件外部的某个地方

方法二:

如果您想将表备份到其他服务器以用于任何灾难恢复解决方案或数据丢失防护,那么您可以使用任务中的生成脚本选项为表编写脚本。

  1. 首先,右键单击包含要备份的表的数据库,然后选择“任务”->“生成脚本”

  2. 从需要备份表的列表中选择您的数据库

  3. 出现的下一个屏幕是脚本选项。

  4. 向下滚动脚本选项,直到您看到表/视图选项。我们希望以下内容为真:检查约束、脚本数据、外键、主键、触发器和唯一键。(或者你当然可以选择你需要的任何东西)。选择下一步,我们将看到选择对象类型屏幕

  5. 选择表格并点击下一步。最后,选择要备份的一个或多个表,然后点击下一步

方法三:

您也可以使用bcp 实用程序进行表备份。