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 ;
--回滚 ,同一窗口,新增窗口均可查到