0

这是我尝试运行的查询。我正在测试 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。谢谢

4

1 回答 1

1

是什么@var,什么时候大于 0。如果@var没有更改为1Started TRANSACTIONneverCOMMITROLLBACK. 所以表将被锁定直到 TRANSACTION 结束。

于 2013-03-16T05:00:07.067 回答