如果在sql server中回滚事务,它会删除临时表(在事务中创建)吗?

时间:2013-02-06 21:43:56

标签: c# .net sql sql-server sql-server-2008

在事务中,我创建了一些临时表并插入了一些数据。如果一切正常,临时表将被删除,然后事务将被提交。如果有异常,则连接将关闭。

我的问题是:在关闭连接之前是否必须回滚事务?或者,只要连接关闭,就可以了吗?

如果我回滚,我认为在事务中创建的临时表也将被删除(回滚),对吗?

感谢

2 个答案:

答案 0 :(得分:4)

临时表超出范围时将被删除。

但是,在打开事务时丢失连接会创建一个孤立的事务,并且它保留的任何锁定都将保留。

使用SET XACT_ABORT应在遇到运行时错误时立即回滚任何事务。

http://msdn.microsoft.com/en-us/library/ms188792.aspx

答案 1 :(得分:2)

临时表一旦超出范围就会掉线。无论是否回滚,关闭连接都会使其超出范围。