2013-07-11 75 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

謝謝你們,這工作完美!感謝您的時間和幫助! –