我試圖通過SQL存儲過程循環訪問電子郵件地址列表 - 獲取電子郵件地址的第一部分並查詢另一個表其中部分相匹配AA字段如何使用SQL SEVER存儲過程遍歷字符串列表並更新表
DECLARE @channelName char(100)
DECLARE @EmailAddress char(100)
DECLARE @ParsedEmailID char(100)
DECLARE gpluscursor CURSOR for Select email from Accounts
OPEN gpluscursor
Fetch NEXT from gpluscursor
into @EmailAddress
While @@Fetch_Status=0
Begin
While @EmailAddress is not NULL
Begin
PRINT @EmailAddress
set @ParsedEmailID = (SELECT SUBSTRING(email,0,CHARINDEX('-',email)) from Accounts where email = @EmailAddress)
PRINT @ParsedEmailID
set @channelName = (SELECT channelname FROM channel where channelname like '%'[email protected]+'%')
PRINT 'mychannel'[email protected]
update Accounts set channel = @channelName where email like @EmailAddress
End
Fetch Next from gpluscursor
into @EmailAddress
PRINT @EmailAddress
End
close gpluscursor
下面是從輸出的結果:
[email protected]
test
[email protected]
test
[email protected]
test
看來,光標不移動到下一個記錄。我在這裏做錯了什麼?
這可以在不使用遊標的情況下實現,您是否有特定的理由使用遊標? – gh9
我寧願不使用光標 – Milligran