Sqlserver事务备份和还原实例

 1 create database mydb
 2 use mydb
 3 go
 4 create table account(
 5     id varchar(16),
 6     name varchar(16),
 7     balance float
 8 )
 9 go
10 select * from account
11
12 insert into account(id, name, balance) values(‘620101‘, ‘liyong‘, 300)
13 insert into account(id, name, balance) values(‘620106‘, ‘mali‘, 400)
14 --insert into account(id, name, balance) values(‘620009‘, ‘chenying‘, 800)
15 insert into account(id, name, balance) values(‘646009‘, ‘chenying‘, 800)
16 --delete from account where id = ‘620009‘
17 go
18 update account set balance = balance - 1000 where id = ‘620101‘
19 update account set balance = balance + 1000 where id = ‘620106‘
20 --消息 547,级别 16,状态 0,第 1 行
21 --UPDATE 语句与 CHECK 约束"CK_Blance"冲突。该冲突发生于数据库"mydb",表"dbo.account", column ‘balance‘。
22 --语句已终止。
23
24 go
25 --alter table account
26 --alter COlumn balance int
27 go
28 alter table account
29 add constraint CK_Blance check(balance >= 0)
30 go
31 alter table account
32 drop constraint CK_Blance
33 --定一个事务
34 --从liyong扣钱往mali加钱
35 begin transaction
36 update account set balance = balance - 1000 where id = ‘620101‘
37 if((select balance output from account where id = ‘620101‘) < 0)
38 begin
39 PRINT(‘余额不足!‘);
40 ROLLBACK;
41 end
42 else
43 begin
44     update account set balance = balance + 1000 where id = ‘620106‘
45     commit;
46     PRINT(‘转账成功!‘);
47 end
48 go
49 sp_help
50 --备份设备
51 sp_addumpdevice ‘disk‘, ‘xk_bak‘ ,‘d:\xk_bak‘
52 --备份数据库
53 backup database mydb
54 to xk_bak
55 --还原数据库
56 restore database mydb from disk = ‘d:\xk_bak‘
57 with replace; --覆盖
时间: 2024-08-08 09:39:15

Sqlserver事务备份和还原实例的相关文章

mysql 利用binlog增量备份,还原实例

mysql 利用binlog增量备份,还原实例 张映 发表于 2010-09-29 分类目录: mysql 一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然,我只要备份增加的数据.这样减少服务器的负担. 二,启用binlog vi my.cnf log-bin=/var/lib/mysql/mysql-bin.log,如果是这样的话log-bin

SQLServer 批量备份与还原

备份与还原是数据库避不开的主题,而作为DBA,经常会面临将一台机器上的所有数据库重新构建到一台新机器上的要求: 在现在都讲究自动化管理的时代,传统的界面操作备份还原的做法不仅浪费时间和精力,而且还很容易出错,并且这次完成后, 下次再有这样的要求,必须又重头开始(估计做5次就能做得人狂吐):于是,我们需要一套应对这种频繁操作.耗时.耗精力 的通用处理方法,所以以下批处理脚本就诞生了. 脚本主要的功能: 1. 备份一个服务器上的所有数据库(当然你也可以选择),备份文件按数据库名+日期生成,以.bak

sqlServer数据库备份与还原——差异备份与还原

1.差异备份 是完整备份的补充 备份自上次完整备份以来的数据变动的部分 2.备份过程: 在做差异备份之前需要先进行完整备份.完整备份的过程见:https://i.cnblogs.com/EditPosts.aspx?postid=10322955 差异备份与完整备份过程类似,只是备份类型选为差异备份 3.还原过程: 在进行差异还原的时候先要进行完整备份还原,但是要注意要选择上以下两个对勾,否则会报错. 不要着急点击确定,在选项中选中覆盖现有数据库,同时在恢复状态处选择第二个. 点击确定后,可以看

SQL Server 2008数据备份与还原的原理是什么?

为什么SqlServer有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的SqlServer数据库. 单就操作过程而言,SqlServer中数据库备份和恢复过程是相当简单的,可以通过ManagementStudio的图形界面进行操作,也可以使用几句T-SQL语句完成.但要明白备份恢复的整个过程,定制符合系统需求数据库备份方案,却需要知晓数据库的实现原理.备份和恢复是数据库的核心功能. 可能许多

sqlserver多文件组数据库的备份和还原实战

数据库文件过大时就要进行数据分区,就是讲数据库拆分到多个文件组中.已方便数据文件管理,提高数据库的读取效能,多文件组如何进行数据库的备份和还原呢,今天主要做多文件组数据库的备份和还原实验. 第一步 创建数据库qhw_test 数据库包括一个userinfo 数据表,userinfo数据表根据id做分区 包括一个主分区 ,五个次分区,主分区包括qhw_test,data2两个文件, 数据表脚本如下 CREATE TABLE [dbo].[userinfo](    [Id] [int] IDENT

事务、视图、索引、备份、还原

事务: 是作为单个逻辑公作单元执行的一系列操作 .事务是一个不可分割的公作逻辑单元多个操作作为一个整体向系统提交.要么都执行,要么不执行 事务的特性: 事务必须具备以下四个属性,简称ACID属性 原子性:事务是一个完整的操作,事务的各步操作是不可分的(原子的), 要么都执行,要么都不执行 一致性:当事务完成时,数据必须处于一致状态 隔离性:并发事务之间彼此隔离,独立,它不应该以任何方式依赖或影响其他事务 持久性:事务完成后,它对数据库的修改被永久保持 执行事务的语法: 开始事务BEGIN或STA

sqlserver日志的备份与还原

----------完整备份与还原----------                --完整备份数据库--backup database studb to disk='e:\stu.bak'backup log studb to disk='e:\stu_log.bak' use mastergo--还原数库库-- restore database studb from disk='e:\stu.bak' with replace,norecovery restore log studb fr

使用PowerShell 命令集进行SQL Server 2012 备份和还原

最近心相不错,所以打算翻译一些英文文档做福利,原文在此,翻译有不足的地方还请各位兄弟指点. 讨论什么是DBA最重要的工作的时候,你最常听到就是一条就是DBA只要做好备份和恢复.事实如此,如果你不做备份,或者无法保证你的备份能够有效恢复,你和你的公司就会处于数据丢失危险下. T-SQL 命令BACKUP DATABASE已经使用了相当长的一段时间(在这之前用的是DUMP DATABASE 命令,老人们都记得). 它仍然不失为备份数据库好方式.我们现在有一个新的方法来自动的做这些日常的备份处理任务.

SQLServer 以备份初始化订阅

原文:SQLServer 以备份初始化订阅 在创建事务复制时,如果发布数据库很大,使用快照初始化时,将等待很久,如果出现问题可能又得重新初始化.使用备份初始化会省很多时间,但是数据库在创建发布订阅期间不能访问.使用备份代替快照迁移数据,备份可以压缩或使用 FTP 传输,若在同一个机房,拷贝复制更快. 现在测试: 创建测试库(发布服务器) -- 创建测试库(发布服务器) USE [master] GO CREATE DATABASE [PubDB] ON PRIMARY ( NAME = N'Pu