这是我试过的查询。我正在测试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.谢谢
答案 0 :(得分:1)
什么是@var
,什么时候会是> 0.如果@var
未更改为1
已开始TRANSACTION
从未COMMIT
或ROLLBACK
。因此,表将被锁定,直到TRANSACTION结束。