0

作为一个 MS Access 团队,我们的 IT 团队不允许我过多地接触 SQL 服务器,所以我不知道如何在其中循环记录集以完成我需要的计划工作。我已经对我想做的事情进行了伪编码,但如果有人能指出这是如何完成的,我将不胜感激......

for every record in qry_deliveryqueue
loop
if not fail then
  send docID field to SP_sendfile
  set delivereddate=getdate()
else
 insert into tbl_errors (errdate,docid) values (getdate(), docid)
endif
next record
4

3 回答 3

0

您所追求的语法是CURSOR. 该文档有很好的示例,可以为您指明正确的方向。您可能想围绕逻辑编写一个存储过程并从调度程序调用它。

游标通常效率低下,但我假设您的 sp_sendfile 有一些更复杂的逻辑,无法将所有记录视为一个集合

于 2012-07-30T09:58:15.387 回答
0

您可以使用 Sql while 语法Sql Cursor 语法

于 2012-07-30T10:01:05.517 回答
0

试试这个 ion SQL server(这个代码是 while 循环的示例。所以你必须根据你的要求调整它)

--在sql服务器中

Declare @idmin int,@idmax int
select @idmin=MIN(id) from  qry_deliveryqueue --This is first record in qry_deliveryqueue
select @idmax=MAX(id) from  qry_deliveryqueue --This is last record in qry_deliveryqueue
--You can 
While(@idmin <= @idmax)
begin
IF @flag<>'Fail'
begin
--  send docID field to SP_sendfile
--  set delivereddate=getdate()
end
else
begin
insert into tbl_errors (errdate,docid) values (getdate(), docid)
end
SET @idmin=@idmin+1
end
于 2012-07-30T14:07:07.857 回答