2013-07-11 44 views
0

我想要做的是执行循环遍历表中的每一列,并将变量@agent设置为该列的agentID。将SQL变量设置为当前行中的值

这里是我到目前为止的代码:

Declare @index int = 1 
    Declare @agentCount = Max(rowID) 
    Declare @agentID int 

    While(@i =< @agentCount) 
    Begin 
     If(@index = rowID) 
     Begin 
       --Set @agentID (to current row's agentID) 
       Exec mergeagentLogRecords @agentID, @startDate, @endDate 
     End 
    Set @index = @index + 1 
    End 

我希望我解释自己不够好:P 为寻找谢谢!

+0

每列或每行?什么是表格结构和“mergeagentLogRecords”的定义是什么?应尽可能避免逐行处理,以利于基于集合的处理。 –

+0

它在哪里检索表格的内容?你的桌子的结构是什么? – STLDeveloper

回答

2

你可能想要做这样的事情,这取决于你是如何产生的ROWID:

SELECT @agentID = agentID FROM agentTable WHERE @index = rowID; 

然后继续你的快乐的方式与不管它是你的逻辑需要做。

+0

我怎么能通过这个方法将@agentID传递到我的存储过程? –

+0

@AaronJohnsen,你已经在你的代码中执行它的方式。 'SELECT'语句将把agentID存储到'@ agentID'变量中。然后,您将在存储过程中使用该变量(如您已经显示的那样),其值将用于参数中。 – Ellesedil

+0

谢谢你们,这工作完美!感谢您的时间和帮助! –