问题
以用户身份执行:CORP \ SVC-UK-SVCEMI。从字符串转换日期和/或时间时转换失败。 [SQLSTATE 22007](错误241)。步骤失败。
我面临的问题是我创建了一个存储过程,在SSMS查询窗口中执行时运行正常 - 但是当从SQL代理作业运行时失败。
为什么我会被困?
由于作业运行完全相同的程序,在相同的数据库和数据上,我对为什么这不起作用感到非常困惑。
我的想法
从逻辑上讲,我会把它归结为用户帐户(因为这是我发现的唯一可能的不同),认为可能SQL Agent服务帐户在某种程度上具有不同的日期格式设置。但是,我认为这些设置在服务器级别(我们最近已更改为GB-English) - 而不是帐户级别。
由于我无法在查询窗口中设法复制此问题,因此调试哪一行导致问题变得非常困难
从SSMS查询窗口运行
SQL代理Jobstop配置
运行作业时生成错误
由于我认为这是一个SQL代理配置问题,我还没有添加SQL过程中的任何代码。我可以根据要求做到这一点,但它很长(想想我的可读性超过了简短性 - 可能性能 - 当谈到编写SQL时)
对于可能导致此问题的任何想法将不胜感激。
非常感谢。
答案 0 :(得分:0)
作业中的存储过程可能运行在与从SSIS启动它时使用的用户帐户不同的用户帐户。
并且,此用户帐户可能具有不同的设置
尝试"执行AS user = xxxx"对于您的存储过程并使用您自己的用户帐户,然后看看会发生什么......
请参阅:EXECUTE AS