C# 如果在sql server中回滚事务,是否会删除临时表(在事务中创建)?

C# 如果在sql server中回滚事务,是否会删除临时表(在事务中创建)?,c#,.net,sql,sql-server,sql-server-2008,C#,.net,Sql,Sql Server,Sql Server 2008,在事务中,我创建了一些临时表并插入了一些数据。如果一切正常,临时表将被删除,然后事务将被提交。如果出现异常,连接将关闭 我的问题是:在关闭连接之前是否必须回滚事务?或者,只要连接关闭,就可以了 如果我回滚,我假设在事务中创建的临时表也将被删除(回滚),对吗 谢谢临时表一旦超出范围就会下降。无论是否回滚,关闭连接都会使其超出范围 一旦临时表超出范围,它将立即下降。无论是否回滚,关闭连接都会使其超出范围 临时表超出范围时将被删除 但是,在打开事务时丢失连接会创建孤立事务,并且它持有的任何锁都将保留

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

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

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


谢谢

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

一旦临时表超出范围,它将立即下降。无论是否回滚,关闭连接都会使其超出范围

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

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

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


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

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

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


这里需要说明的是,如果您正在捕获C#并关闭连接,那么您是在异常之外关闭它,不会导致孤立。如果您的过程导致异常,则可能是孤立的。就我个人而言,我更喜欢使用TRY-CAtCH块和特定的回滚,这样我还可以在回滚后在日志表中捕获导致错误的错误和/或数据。如果您所做的事情非常复杂,需要显式事务,那么您可能希望日志记录能够在问题发生后对其进行故障排除。为了更清楚,如果您正在捕获C#并关闭连接,那么您将在异常之外关闭它,而不会导致孤立。如果您的过程导致异常,则可能是孤立的。就我个人而言,我更喜欢使用TRY-CAtCH块和特定的回滚,这样我还可以在回滚后在日志表中捕获导致错误的错误和/或数据。如果您所做的事情非常复杂,需要显式事务,那么您可能希望日志记录能够在以后出现问题时进行故障排除。