我已经看过这个,但我见过并尝试过的解决方案都没有真正解决我的问题。
背景:使用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]
在游标中,插入语句周围有一个 try/catch,因此当它一个一个处理作业时,如果有问题,我确切地知道它失败的作业,因为有一个更新语句说“完成" 如果没问题," 失败" 如果不是。
我放入此表的所有数据都足够短以适合所需列(即产品名称少于 200 个字符,INT 值是 5 位或更少)。
我收到警告,而不是错误,但我不明白为什么它在作为 SQL 作业运行时会失败合法记录,但在作为独立 SP 运行时不会。
目标表上没有触发器,INT 列上有一些默认为 0 的约束(但我没想到会是问题。同一个 SP 中的其他表没有这个问题)
提前致谢