0
我试图本质上“联合”我的光标的结果集。由于我无法弄清楚如何“结合”它们,我想,嘿,为什么不将结果存储到临时表中,然后从该临时表中删除select *
?问题是,当我运行这段代码时,它说我的临时表已经存在。我想当我做select into
时,它会尝试每次创建一个新的临时表。如何在不使用select into
的情况下插入临时表中?从一个while循环(光标)中选择一个临时表
drop table #mikemarks
declare db_cursor CURSOR FOR SELECT jobid from cxxxxxxx.Campaign_Data_Extension_Names
declare @jobid int
open db_cursor
fetch next from db_cursor into @jobid while @@FETCH_STATUS = 0
begin
select j.jobid as 'JobID', j.subscriberkey as 'EmailAddress', j.createddate as 'EventDate', jc.errorcode as 'ErrorCode', jc.Description as 'ErrorCodeDescription' into #mikemarks
from jobsubscribererror j with (nolock)
inner join jobsubscribererrorcode jc on j.errorcodeid = jc.errorcodeid
where j.jobid = @jobid
fetch next from db_cursor into @jobid
end
close db_cursor
deallocate db_cursor
你为什么使用游标? – KiwiPiet
无需循环做插入。这应该基于设置。并注意那些NOLOCK提示。它不仅仅是脏读。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –
@KiwiPiet我通过SELECT语句遍历表“Campaign_Data_Extension_Names”中返回的每个JobID。 –