您的位置:首页 > 数据库

sql server中备份数据的几种方式

2015-04-23 12:38 232 查看
  当我们在写sql脚本要对数据表中的数据进行修改的时候,为了防止破坏数据,通常在开发前都会对数据表的数据进行备份,当我们sql脚本开发并测试完成后,再把数据恢复回来。

目前备份数据,我常用的方法有以下几种。

临时表

导出脚本

复制数据到新表

临时表

使用临时表虽然简单方便,但是它很不安全,如果数据库重启数据就丢失了,所以一般不建议用。使用临时表的代码。

USE TSQLFundamentals2008;
GO

-- 局部临时表
IF OBJECT_ID('tempdb.dbo.#MyOrderTotalsByYear','U') IS NOT NULL DROP TABLE dbo.#MyOrderTotalsByYear;
GO

-- 创建局部临时表
SELECT YEAR(orders.orderdate) AS orderyear,SUM(orderDetails.qty) AS qty
INTO dbo.#MyOrderTotalsByYear
FROM Sales.Orders AS orders
LEFT JOIN Sales.OrderDetails AS orderDetails ON orders.orderid = orderDetails.orderid
GROUP BY YEAR(orders.orderdate);


View Code

导出脚本

当数据量小的时候,我们可以使用sql server自带的导出脚本功能将数据导出成sql脚本,但是当数据量大的时候(比如前段时间我导出一个表,50多万条记录,生成的脚本有1个多GB),生成的脚本体积很大,无法在SSMS中打开执行。虽然可以使用osql执行,不过速度很慢。



复制数据到新表

备份使用select * into [目标表] from [源表],恢复的时候insert into [源表] select * from [目标表],不过要注意主键是否自增,如果是自增的话,恢复的时候最好在INSERT INTO之前加上SET IDENTITY_INSERT [表名] ON语句。

所以总结起来,复制数据到新表的方式比较方便和可靠。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: