0
嘿夥計,光標將不會獲取第二個值
我遇到了TSQL和遊標有點問題。我的光標設想循環瀏覽mailadresses的列表(視圖)。我的代碼是這樣的:
set @sqlstatement = 'Declare cur CURSOR FOR SELECT ' + @col + '
FROM ' + @view + ' group by ' + @col
exec sp_executesql @sqlstatement
OPEN cur
FETCH NEXT FROM cur INTO @emailAddress
WHILE @@FETCH_STATUS = 0 BEGIN
SET @MyRecipients = @emailAddress;
SET @MyResult = Replace(@MyResult,'defg',@emailAddress)
SELECT @MyResult
IF @@ROWCOUNT > 0
begin
EXEC dbo.[Excel] @html = @html OUTPUT,@query = @MyResult
IF @html != ''
begin
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Operator',
@recipients= @MyRecipients,
@body = @html,
@body_format = 'HTML',
@subject= @MySubject,
@copy_recipients = @MyCC
;
END
END
FETCH NEXT FROM cur INTO @emailAddress
END
Close cur
DEALLOCATE cur
所以我的問題是,光標會運行2次,如果有在視圖2個mailadresses,但我得到了相同的郵件的2倍,而不是2個不同的郵件。 (我是CC的一部分,看看它是否有效)
希望有人有一些想法,可以幫助我。
問候,
靈魂
那麼你不知何故得到了正確的觀點,我能夠解決它。我必須將「@MyResult」的初始化移動到光標中。 – Soulrox