首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于存储过程的回滚,该怎么处理

2012-02-05 
关于存储过程的回滚1.我写了一个存储过程A,调了一个存储过程B,现在我在A搞个事务,调用了B,然后回滚,是否B

关于存储过程的回滚
1.我写了一个存储过程A,调了一个存储过程B,现在我在A搞个事务,调用了B,然后回滚,是否B做的任何修改都会回滚,不管B里调用了其什么存储过程,嵌套了多少层,都会全部回滚?

2.truncate   table,drop   table是否也可以回滚?

[解决办法]
是的,樓主所說兩種情況都會回滾的
[解决办法]
USE test
GO
CREATE TABLE [dbo].[TRANTEST](
[id] [int] IDENTITY(1,1) NOT NULL,
[Value] [varchar](200) COLLATE Chinese_PRC_CI_AS NOT NULL,
[InDate] [datetime] NULL
) ON [PRIMARY]

INSERT INTO [dbo].[TRANTEST]([Value],[InDate]) VALUES ( '325 ',GETDATE())
INSERT INTO [dbo].[TRANTEST]([Value],[InDate]) VALUES ( '35465 ',GETDATE())
INSERT INTO [dbo].[TRANTEST]([Value],[InDate]) VALUES ( '32435 ',GETDATE())


SELECT * FROM DBO.TRANTEST WITH (NOLOCK)

BEGIN TRAN --事务回滚测试 TRUNCATE TABLE
TRUNCATE TABLE DBO.TRANTEST
SELECT * FROM DBO.TRANTEST WITH (NOLOCK)
ROLLBACK TRAN
SELECT * FROM DBO.TRANTEST WITH (NOLOCK) --回滚成功


BEGIN TRAN--事务回滚测试 DROP TABLE
DROP TABLE DBO.TRANTEST
ROLLBACK TRAN
SELECT * FROM DBO.TRANTEST WITH(NOLOCK)--回滚成功

热点排行
Bad Request.