Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 调用回滚事务后,执行查询将继续运行_Sql_Database_Transactions_Sql Server 2012 - Fatal编程技术网

Sql 调用回滚事务后,执行查询将继续运行

Sql 调用回滚事务后,执行查询将继续运行,sql,database,transactions,sql-server-2012,Sql,Database,Transactions,Sql Server 2012,这是我尝试运行的查询。我在测试回滚,因为我们需要在作业中进行回滚 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', 'Pen

这是我尝试运行的查询。我在测试回滚,因为我们需要在作业中进行回滚

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
已启动
事务
从不
提交
回滚
。因此,表将被锁定,直到事务结束。

如何结束事务?如果表被锁定。您可以使用
KILL
检查表锁和
KILL
进程。要正确运行查询,只需删除行
IF@var>0
,我无法使用KILL命令,因为我没有访问权限(我不是服务器的所有者),但我认为事务超时,查询再次正常工作。非常感谢你。我再也不会那样做了。