如果未提交,此SQL中的事务会发生什么?

时间:2009-09-17 18:23:25

标签: sql sql-server-2005 transactions

如果我有以下SQL:

BEGIN TRANSACTION
SELECT val
FROM myTable

并且不跟进提交,TRANSACTION会发生什么?它是否取决于它执行的上下文/范围(例如在proc,mgt studio中)?

是否有一些地方可以查看是否有尚未在数据库中提交/回滚的事务?

谢谢,

克里斯

3 个答案:

答案 0 :(得分:7)

在连接关闭之前一直保持打开状态。关闭连接后,将回滚事务。

目前的交易可以在sys.dm_tran_active_transactionssys.dm_tran_database_transactions中找到。

答案 1 :(得分:1)

不会为事务中使用的对象释放锁定,只有该连接可以看到更改。

答案 2 :(得分:1)

使用以下命令检查数据库中的所有打开事务:

DBCC CHECKTRAN