为什么可以';在事务SQL Server中,是否在第二次回滚到保存点?
我创建了一个名为“TestTable”的表 然后我在表中插入一些记录,如下所示:为什么可以';在事务SQL Server中,是否在第二次回滚到保存点?,sql,sql-server,transactions,Sql,Sql Server,Transactions,我创建了一个名为“TestTable”的表 然后我在表中插入一些记录,如下所示: BEGIN TRANSACTION INSERT INTO TestTable VALUES(1,1) SAVE TRANSACTION TS1 BEGIN TRANSACTION INSERT INTO TestTable VALUES(2,2) ROLLBACK TRANSACTION TS1 --roll back to TS1 a
BEGIN TRANSACTION
INSERT INTO TestTable VALUES(1,1)
SAVE TRANSACTION TS1
BEGIN TRANSACTION
INSERT INTO TestTable VALUES(2,2)
ROLLBACK TRANSACTION TS1
--roll back to TS1 at the first time
BEGIN TRANSACTION
INSERT INTO TestTable VALUES(4,3)
ROLLBACK TRANSACTION TS1
--roll back to TS1 at the second time
Messages show off“无法回滚TS1。未找到该名称的事务或保存点。”
然后我想有可能只回滚到保存点一次吗 这边
CREATE TABLE dbo.TranTest
(
c1 int
)
GO
BEGIN TRAN T1
INSERT INTO [dbo].[TranTest]
([c1])
VALUES
(1)
SAVE TRAN T1
INSERT INTO [dbo].[TranTest]
([c1])
VALUES
(2)
ROLLBACK TRAN T1
GO
你为什么要加标签?我以为你在问SQL Server-它们是两种不同的产品,现在你的问题都被标记了。你有很多begin事务没有回滚或提交为什么?是的,我故意犯了这个错误,想问一下为什么我不能再次回滚TS1?事务语句以COMMIT或ROLLBACK语句结尾。
CREATE TABLE dbo.TranTest
(
c1 int
)
GO
BEGIN TRAN T1
INSERT INTO [dbo].[TranTest]
([c1])
VALUES
(1)
SAVE TRAN T1
INSERT INTO [dbo].[TranTest]
([c1])
VALUES
(2)
ROLLBACK TRAN T1
GO