您的位置:首页 > 数据库

sql server 2008R2中的事务语句控制

2016-05-10 16:31 507 查看
Oracle数据库客户端工具PL/SQL中的SQL Window涉及到DML操作时,

当前Window中的sql自动归为一个事务,并且有对应的rollback和commit按钮,sql server数据库也可以实现相同功能,只不过需要显式的事务控制语句.

首先,sql server 中的新建查询窗口是一个session,类比PL/SQL中的SQL Window.

sql server 事务控制语句 :https://msdn.microsoft.com/zh-cn/library/ms188929.aspx

BEGIN { TRAN | TRANSACTION }
[ { transaction_name | @tran_name_variable }
[ WITH MARK [ 'description' ] ]
]
[ ; ]

ROLLBACK/COMMIT { TRAN | TRANSACTION }
[ transaction_name | @tran_name_variable
| savepoint_name | @savepoint_variable ]
[ ; ]


例子 :

begin transaction

--调用过程

exec p_ecord_code_plat_sav '','','','2','2','','' ;

--alter procedure [dbo].[p_ecord_code_plat_sav]

-- (

-- @as_userid varchar(255) , -- 操作用户ID

-- @as_wldm varchar(255) , -- 往来代码

-- @as_func varchar(255) , -- 菜单或功能ID

-- @as_code varchar(255) , -- 平台代码

-- @as_name varchar(255) , -- 平台名称

-- @an_errorcode int output , -- 错误代码,如果没有错误 an_errorcode, as_errormsg 均为空

-- @as_errormsg varchar(1024) output -- 返回错误消息

-- )

--执行dml语句

insert into ecm010 select '2','2','';

--到此位置,

!同一窗口,select * from ecm010 ; 能够查到 2,2,'' 数据行

新增窗口 ,查不到

rollback transaction ;

--回滚 ,同一窗口,新增窗口均查不到

commit transaction ;

--回滚 ,同一窗口,新增窗口均可查到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: