在调用ROLLBACK TRANSACTION后,执行查询继续运行



这是我尝试运行的查询。我正在测试ROLLBACK,因为我们需要在赋值中执行它。

BEGIN TRANSACTION;
declare @var bit;
set @var = 0;
BEGIN TRY
    INSERT INTO Orders(ShippingAddress, BillingAddress, Status, Date, ID, CustomerID, Total, BillingInfo) 
    VALUES('10 King Road', '10 King Road', 'Pending', '2013-03-15 07:58:55.760', 16, 1, 145.95, 'Put it on my doorstep please.');
END TRY
BEGIN CATCH
    IF @var > 0
    ROLLBACK TRANSACTION;
END CATCH;
IF @var > 0
    COMMIT TRANSACTION;

我成功运行后,我试图做一个SELECT * FROM Orders,现在SQL Server只是试图运行ExecuteQuery永远…我的搭档也有同样的问题,但我们其他的桌子都很好。有人知道这可能是什么原因吗?我使用的是Microsoft SQL Server 2012。由于

@var是什么,何时> 0。如果@var没有改变为1启动TRANSACTION从未COMMITROLLBACK。因此,表将被锁定,直到TRANSACTION结束。

最新更新