删除并插入到SQL Server代理中不起作用

时间:2014-08-22 09:48:26

标签: sql sql-server tsql sql-agent-job

我有以下交易:

BEGIN TRANSACTION ReadSalesFactsTransation;

BEGIN TRY

DELETE FROM  [dbo].[YSalesFacts];
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
INSERT [YSalesFacts] EXECUTE [ReadSalesFacts];


END TRY
BEGIN CATCH
    SELECT 
        ERROR_NUMBER() AS ErrorNumber
        ,ERROR_SEVERITY() AS ErrorSeverity
        ,ERROR_STATE() AS ErrorState
        ,ERROR_PROCEDURE() AS ErrorProcedure
        ,ERROR_LINE() AS ErrorLine
        ,ERROR_MESSAGE() AS ErrorMessage;
    IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
END CATCH;

IF @@TRANCOUNT > 0
    COMMIT TRANSACTION;
GO

我已将此命令添加到SQL Server代理中,并且我将其作为TSQL脚本执行,但它无效。它执行了几个小时,我有一个时间。但是,如果我在管理中运行相同的查询(复制和粘贴以及执行命令的f5),它的效果会很好。

在我的程序中有一些临时表和许多CTE,但它在Management Studio中工作得很好,而不是与Agent一起工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否在SQL mgmt studio中有一个阻止SQL代理完成的开放事务?

在另一个窗口中运行sp_who2并查看您的SQL代理连接是否被另一个连接阻止。