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 OrdersSQL Server はExecuteQuery永久に実行しようとしました... 私のパートナーも同じ問題を抱えていますが、他のすべてのテーブルは正常に動作します。これの原因は何か考えている人はいますか?Microsoft SQL Server 2012 を使用しています。ありがとうございます。

4

1 に答える 1

1

とは何ですか。@varいつ > 0になります。したがって、トランザクションが終了するまでテーブルはロックされます。@var1TRANSACTIONCOMMITROLLBACK

于 2013-03-16T05:00:07.067 に答える