我已经创建了一个sql代理作业,如下所示
USE [Database]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[StoredProc_RPT_Test]
@batch_id = Null,
@StartDate = Null,
@EndDate = Null
SELECT 'Return Value' = @return_value
GO
当所有参数为空时,存储过程StoredProc_RPT_Test调用另一个存储过程 . 其中将数据插入永久表中 .
我可以手动运行StoredProc_RPT_Test,它工作正常 . 数据存在于永久表中 . 但是,当我运行sql代理程序作业时,没有结果永久表?
真的很困惑 . 这是因为iam调用了两个存储过程吗?
4 回答
问题是SQL Server Agent的默认textize为1024.在执行存储过程之前的SQL Server Agent步骤中,我只是添加了textize .
例如
希望这会对某人有所帮助 .
很可能SQL Server代理没有足够的权限来运行您的SP . 将作业所有者(在对话框中)设置为具有权限的帐户 .
手动运行作业时,请在上下文中执行此操作 .
尝试不在程序内部选择返回值 .
您是否检查了作业日志中是否有任何失败消息?另外,请确保SQL Server服务帐户具有该过程的执行权限 .