删除并插入到不在SQL Server代理中工作的
我有以下交易:删除并插入到不在SQL Server代理中工作的,sql,sql-server,tsql,sql-agent-job,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()
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
我已经将这个命令添加到SQLServer代理中,我正在以TSQL脚本的形式执行它,但它不起作用。它执行了3个小时,我有一个暂停。但是,如果我在管理复制粘贴和f5中运行相同的查询来执行命令,它会正常工作
在我的程序中,ę是一些临时表和许多CTE,但它在管理工作室中工作得很好,而不是与代理一起工作
有什么想法吗?您是否在SQL mgmt studio中有一个阻止SQL代理完成的开放事务
在另一个窗口中运行sp_who2,查看您的SQL代理连接是否被另一个连接阻止 是的,当我试图在SQL代理中执行时,有一个锁。对,所以这与SQL代理无关,所有的事情都与任何有锁的东西有关。关闭该连接并解决问题。