所以我有一个每晚运行的SQL Server作业,它截断表并运行一个查询,将数据计数转换为另一个表中的列,并将所述结果插入到截断的表中。
我已经完成了这项工作的几个不同的迭代,这是我到目前为止已经解决的问题。我最初使用了一个更干净的合并语句但不幸的是我发现这个函数不适用于SQL Server 2005.接下来,我使用Insert和Update制作了一个带有一些选择if语句的代码的混合版本。这个卑鄙的版本似乎有效,但我很快发现更新部分无效。然后我决定删除更新,每天早上再次截断并插入。这对我所需要的工作非常有用,直到我发现该工作正在将重复的记录插入表中。为了解决这个问题,我在桌面上创建了一个主键。我手动运行工作,表格工作正常。
为了自动化这个过程,我将这个截断/插入到SQL Server作业中,每天早上在工作时间和生活良好之前运行。事实证明,第二天这项工作未能完成,因为我遇到了主要的密钥违规行为。代码仍在尝试输入重复内容。如果我通过SQL Server作业代理手动运行此代码,则不会收到任何错误。如果我让工作每天早上按计划运行就会失败。
SQL Server作业代理中是否有任何导致SQL Server行为不同或处理代码的方式不同?我不明白系统如何不能使用相同的工具自动运行此代码,而我可以使用相同的工具手动运行它,它工作正常吗?
答案 0 :(得分:0)
尝试更改作业运行的时间并查看有用的时间。这可能是一个问题,恰好恰好在同一时间运行。