我有一个非常奇怪的案例。有一个夜间运行的触发器。我知道它会运行,因为我每晚都收到一封电子邮件。 这个过程是一个工作链的一部分,如果它失败了,整个链条都会失败,我应该在我的手机上收到警报。 话虽这么说,当我尝试编译这段特定代码时,它会出错。我得到一个无效的列名RowID。
我想知道我面前的版本是不是服务器上的当前版本还是什么东西?这个代码怎么能每天运行,但不能编译......
这里是代码的前几行。我应该指出,我继承了这一点,并没有写出来。从倒数第二行发生错误。提到的表没有rowid列。
set nocount on
-- declare all variables
DECLARE @iNextRowId int,
@iCurrentRowId int,
@iLoopControl int,
@PRODUCT VARCHAR(8),
@MEDIACODE VARCHAR(8),
@QTY INTEGER,
@LISTNAME VARCHAR(50),
@LISTNAME1 VARCHAR(50),
@LISTNAME2 VARCHAR(50),
@SLISTNAME VARCHAR(2)
-- Initialize variables
SELECT @iLoopControl = 1
SELECT @iNextRowId = MIN(RowId)
FROM server..OrdTable ORD1
答案 0 :(得分:1)
您需要检查服务器。我们不可能告诉你,你的环境目前是什么。
您可以致电:
exec sp_helptext 'procedure_name'
查看您的实时环境中当前proc中包含的内容。
如果当前的直播过程是相同的,那么它可能是一个权限问题,或者链条没有像你想象的那样工作。
答案 1 :(得分:0)
我明白了。我在这里继承了一些漂亮的史诗spagetti代码。 在此作业通过的早期proc中,它向表中添加一列以允许它循环,然后删除列。我收到错误,因为我必须先添加列...