如何在 MS SQL Server 2005/2008 中进行表级备份(转储)?
如何在 MS SQL Server 2005/2008 中进行表级备份(转储)?
除非所涉及的表被分配到自己的FILEGROUP
中,否则您不能使用BACKUP DATABASE
命令备份单个表。
如您所建议的,您可以将表数据导出到CSV文件。现在,为了获取您的表定义,您可以“脚本化”CREATE TABLE
脚本。
您可以在SQL Server管理工具中执行此操作,方法是:
右键单击数据库 > 任务 > 生成脚本
然后,您可以选择要脚本化的表,并选择包括任何相关对象,例如约束和索引。
为了在脚本中获取DATA
以及schema
,您需要在设置脚本选项选项卡上选择Advanced
,并在GENERAL
部分设置Types of data to script
选择Schema 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的其他方法。
以下是您需要的步骤。如果您想获取数据,则步骤5非常重要。第2步是您可以选择单个表格的地方。
编辑,stack的版本不太易读...这里是完整大小的图片http://i.imgur.com/y6ZCL.jpg
select * into newtablename from oldtablename
要仅复制表结构,请使用以下查询。
select * into newtablename from oldtablename where 1 = 2
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
DUMP
功能,那么好消息是:SQL Server 2008 Management Studio 添加了这个功能。在SSMS中,只需右键单击相关的数据库,然后选择任务 > 生成脚本。然后在选项向导的第二页中,确保选择将数据也作为脚本生成,它将为您生成相当于 DUMP
文件的内容。创建一个新的文件组,将这个表放在里面,并只备份这个文件组。
使用SQL Server导入和导出向导。
我获取新记录(基于“状态”列),并将数据传输到目标位置。(通过“转换数据任务”)
然后我只更新了“状态”列。(通过“执行SQL任务”)
我必须正确地修复“工作流程”。