我已创建一个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调用了两个存储过程吗?
答案 0 :(得分:2)
您是否在作业日志中检查了任何失败消息?另外,请确保SQL Server服务帐户具有该过程的执行权限。
答案 1 :(得分:0)
问题是SQL Server Agent的默认textize为1024.在执行存储过程之前的SQL Server Agent步骤中,我只是添加了textize。
e.g。
SET TEXTSIZE 15000
EXEC dbo.yourspname @param1, @param2...
希望这会对某人有所帮助。
答案 2 :(得分:0)
很可能SQL Server代理没有足够的权限来运行您的SP。将作业所有者(在对话框中)设置为具有权限的帐户 手动运行作业时,请在上下文中执行此操作。
答案 3 :(得分:0)
尝试不在程序内部打印时选择返回值。