【发布时间】:2015-05-26 13:59:24
【问题描述】:
在你说我之前, 我放了retainsameconnection,我放了。
我的所有组件也有延迟验证
在其他人查询我使用此动态临时表的位置之后 这失败(有时)说临时表不存在。
我该如何解决?
这是我的查询..
declare @usuario varchar(100)
declare @contra varchar(100)
declare @servidor varchar(100)
declare @based varchar(100)
declare @nombretabla varchar(100)
set @usuario ='pruebas'
set @contra ='123'
set @servidor ='1.6.7.9'
set @based ='op'
set @nombretabla='tablaBC245B7A910D4B488CC9EFF0EFD3C177'
/*this was a dynamic name got with this query in other execute sql task
declare @tabla varchar(50)
set @tabla=NEWID ()
set @tabla =REPLACE (@tabla ,'-','')
select 'tabla'+@tabla nombre
*/
declare @cadena varchar(500)
set @cadena ='SERVER='+@servidor+';DataBasE='+@based +
';uid='+@usuario +';pwd='+@contra+';'
set @cadena =''''+@cadena +''''
while OBJECT_ID('tempdb..##envases'+@nombretabla) IS NULL
begin
exec('
SELECT * into ##envases'+@nombretabla+'
FROM OPENROWSET(
''SQLNCLI'',
'+@cadena+',
''
select pro=p.pro,envase=e.pro from procorp p
join procorp e on p.envase=e.envase and e.esenvase=1
union all select pro=-1,envase=-1
'')
'
)
end
IF OBJECT_ID('tempdb..#primera') IS NOT NULL DROP TABLE #primera
IF OBJECT_ID('tempdb..#end') IS NOT NULL DROP TABLE #end
create table #primera(
pro int,
envase int
)
insert into #primera
exec('select * from ##envases'+@nombretabla+'')
select fila='select pro='+CONVERT(varchar(10),pro)+
', envase='+CONVERT(varchar(10),envase)+' union all '
into #end
from #primera
--select * from #end
--drop table #end
--drop table #primera
alter table #end
add
uno int not null default(1),
id int identity
declare @maximo int
set @maximo =(select MAX(id) from #end )
update #end set fila=fila+'terminado' where id=@maximo
update #end set fila=replace(fila,'union all terminado','') where id=@maximo
select uno, ' begin try drop table #tmpenvase end try begin catch end catch
select * into #tmpenvase from ( '+
convert(varchar(max),STUFF(
(select '', convert(varchar(max),fila) from #end order by id
for xml path('') )
,1,0,'') )+' ) q 'cadena
from #end e
group by uno
【问题讨论】:
-
是否有某个地方触发了这种情况?
-
不,该代码有时可以正常工作,但现在我需要在其他国家/地区进行测试,这比在同一国家/地区的服务器上进行测试时失败的次数要多得多。现在几乎 100% 的执行都失败了。
标签: sql-server ssis temp-tables