手动存储的Proc运行与通过作业运行不同

时间:2016-07-18 09:10:52

标签: sql sql-server-2008 stored-procedures

我有一个存储过程,当手动运行时,会产生预期的结果。当由作业代理运行时,我得到了非常不同的结果,我无法弄清楚原因。该问题涉及以下

declare @date as date
set @date=case datepart(dw,getdate())
when 1 then GETDATE()-3 --Monday so use Friday
when 7 then GETDATE()-2 --Sunday so use Friday
else GETDATE()-1 end
print @date

当作为一项工作运行时,无论星期一如何,@date都会设置为GETDATE()-1。但似乎在星期天正确地设置为GETDATE()-2 ....

我翘起了什么?

1 个答案:

答案 0 :(得分:1)

看看SET DATEFIRST https://msdn.microsoft.com/en-us/library/ms181598.aspx

一个可能的原因可能是作业登录的设置与您自己的登录设置不同。