我已经看过这个了,但是我见过和试过的解决方案都没有解决我的问题.
背景:使用SQL Server 2005
当我运行存储过程将数据插入表时,它工作正常.如果我获得SQL作业以在相同数据上运行相同的存储过程,则作业成功运行,但数据未插入到同一目标表中.
我试过了SET ansi_warnings OFF,但编译SQL时出错了,说
异构查询需要为连接设置ANSI_NULLS和ANSI_WARNINGS选项.这确保了一致的查询语义.启用这些选项,然后重新发出查询.
表模式:
[JobNo] [int]
[ProductCode] [varchar](20)
[ProductName] [varchar](200)
[ReportedAvailability] [varchar](100)
[ReportedProductClean] [varchar](100)
[ReportedProductDate] [varchar](100)
[ReportedProductPrice] [int]
[ReportedCasesOrdered] [int]
[AvailableYes] [int]
[AvailableOOS] [int]
[AvailableNotRanged]
[ProductClean] [int]
[ProductInDate] [int]
[ProductPrice] [int]
[CasesOrdered] [int]
[Include] [int]
[Counter] [int]
[UserId] [varchar](10)
[Modified] [datetime]
Run Code Online (Sandbox Code Playgroud)
在游标中,insert语句周围有一个try/catch,因此它逐个处理作业,如果有问题,我确切地知道它失败了哪个作业,因为有一个更新语句说"完成" "如果没关系,"如果没有失败".
我在此表中放入的所有数据都足够短,以适应需求列(即产品名称少于200个字符,INT值为5位或更少).
我收到警告,而不是错误,但我无法理解为什么它在作为SQL作业运行时失败了合法记录,而不是当它作为独立SP运行时.
目标表上没有触发器,INT列上有一些默认的0约束(但我不认为这是问题.同一SP中的其他表没有此问题)
提前致谢