使用SQL Server循环记录

时间:2012-07-30 09:55:06

标签: sql-server ms-access

作为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

3 个答案:

答案 0 :(得分:0)

您所使用的语法是CURSOR。该文档有很好的例子,可以指出你正确的方向。您可能希望围绕逻辑编写存储过程并从调度程序中调用它。

游标通常效率低下,但我假设你的sp_send文件有一些更复杂的逻辑,它排除了将所有记录视为集合

答案 1 :(得分:0)

答案 2 :(得分:0)

试试这个离子SQL服务器(此代码是while循环的示例。所以你必须根据你的要求进行调整)

- 在sql server

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