`
虚弱的java
  • 浏览: 159661 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论
阅读更多

--SQL SERVER 报表服务
--1、启动报表服务 开始--程序--MICROSOF SQL SERVER2008--配置工具--REPORTING SEERVICES 配置管理器
 
--事务管理
--事务:一系列命令的封装形式,也是数据库的基本对象。是数据库的某一工作单元执行的一系列操作
--1、原子性:事务必须是原子工作单元,对于进行数据修改的各种命令,要么全部执行,要么全都不执行
--2、一致性:事务执行完成后,数据必须保持一致
--3、隔离性:由并发事务所做的修改,与其他并发事务所做的修改必须隔离
--4、持久性:事务执行完成后其对于数据的影响永久性的。
--事务的运行模式
--1、自动提交事务:每条单独的语句都是一个事务
--2、显示事务:每个事务均以BEGIN TRANSACTION语句显示开始,以COMMIT或ROLLBACK语句显示结束
--3、隐式事务:在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显示完成
--4、批处理级事务:只能应用于多个活动结果集(MARS),在(MARS)会话中启动的Transact-SQL显式
-----或隐式事务变为批处理级事务。当批处理完成时没有提交或回滚的批处理事务则自动由SQL Server进行回滚
--启动事务
--1、自动提交事务
--2、显式事务
--3、隐式事务
--结束事务
--1、COMMIT:如果事务的各语句运行成功,则提交。COMMIT语句保证事务的所有修改,在数据库中都保持永久性。
--2、ROLLBACK:如果事务在执行过中出现错误,则取消或回滚事务。ROLLBACK语句会将数据返回到其在事务开始时所处的状态
--事务的错误处理
--1、如果执行了SET XACT_ABORT ON 语句,则任何时候运行语句错误,都会导致自动回滚当前事务
--事务中的SQL语句
--ALTER DATABASE :修改数据库
--DROP DATABASE :删除数据库
--CREATE DATABASE : 创建数据库
--ALTER FULLTEXT CATALOG :修改全文目录
--DROP FULLTEXT CATALOG : 删除全文目录
--CREATE FULLTEXT CATALOG : 为数据库创建全文目录
--ALTER FULLTEXT INDEX :修改全文索引
--DROP FULLTEXT INDEX : 删除全文索引
--CREATE FULLTEXT INDEX:创建全文索引
--BACKUP 备份数据库
--RECONFIGURE 重新配置
--RESTORE 还原数据库
--UPDATE STATISTICS 更新系统的统计信息

DECLARE @TranName varchar(20);
select @TranName='MyTransaction';
BEGIN TRANSACTION @TranName;--开始命名事务为变量 @TranName.
use AdventureWorks;
DELETE FROM AdventureWorks.HumanResources.JobCandidate
 WHERE JobCandidateID = 13;
COMMIT TRANSACTION @TranName; --提交事务 @TranName.
go
--标记事务 : WITH MARK: 标记事务使事务名被置于事务日志中。只有当数据库由标记事务更新时,才在事务日志中放置标记。不修改的事务不会被标记的
BEGIN TRAN Tran1; --开始事务 Tran1
update TABLE1 ...;
BEGIN TRAN TranM WITH MARK;--设置TranM为标记名
UPDATE TABLE2....;
SELECT * FROM TABLE1;
COMMIT RTAN TranM;--提交事务TranM
UPDATE TABLE3....
COMMIT TRAN Tran1; --提交事务Tran1
--提交事务
use AdventureWorks;
go
BEGIN TRANSACTION; --开始事务
go
delete from HumanResources.JobCandidate --执行删除操作
where JobCandidateID = 13;
go
commit transaction;--提交事务
go
--回滚事务
use tempdb;
go
create table ValueTable([value] int)
go
declare @TransactioinName varchar(20)='Transaction1';
--这些语句以一个命名的事务(名称存储在变量@TransactonName)开始
--插入两条记录,则回滚
BEGIN TRAN @TransactionName
 INSERT INTO ValueTable VALUES(1)
 INSERT INTO ValueTable VALUES(2)
ROLLBACK TRAN @TransactionName
 INSERT INTO ValueTable VALUES(3)
 INSERT INTO ValueTable VALUES(4)
SELECT * FROM ValueTable
drop table ValueTable
--Results
--value 可以看到查询结果的值为3和4,没有1和2
--编写一个简单的事务 a,b是两个表
create table  a(name varchar(20) not null)
create table  b(name varchar(20))

begin try
begin tran
insert into a select 'a'
insert into b select 'c'
commit tran
end try
begin catch
rollback
end catch
--全部插入
begin try
begin tran
insert into a select null
insert into b select 'c'
commit tran
end try
begin catch
rollback
end catch
--全部回滚
select * from a
select * from b

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics