Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

benck

Chamada assíncrona de stored procedure

Recommended Posts

Pessoal, meu problema é o seguinte, tenho uma stored procedure que chama outra stored procedure. Essas segunda SP demora um certo tempo para executar pois conecta em objetos COM, e a primeira fica esperando a segunda terminar. Não queria que houvesse essa espera, queria que chamasse a segunda de maneira assíncrona.

 

Ex:

-- Stored procedure que demora, botei um sleep de 5 segundos

CREATE PROCEDURE TESTE2

AS

WAITFOR DELAY '00:00:05'

-- Stores procedure que chama a anterior

CREATE PROCEDURE TESTE

AS

EXEC TESTE2

-- Execução

EXEC TESTE

 

Se vocês testarem este código verão que demorará os 5 segundos para executar, mas como disse não quero que isso ocorra. Alguém sabe como resolver esse problema?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

com service broker: http://blogs.msdn.com/b/rushidesai/archive/2005/02/09/746793.aspx

 

 

com sp_oamethod:

use test
go 
create proc usp_async
as 
waitfor delay '00:05:00'
create table async (a int)
go

 

use test 
go 
set nocount on
declare @rc int
declare @object int
declare @src varchar(255)
declare @desc varchar(255)
print 'starting ....'
exec @rc = sp_oacreate 'wscript.shell', @object out
print @rc
if @rc <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out 
select hr=convert(varbinary(4),@rc), 
          source=@src, 
          description=@desc
return
end
print 'executing usp_async'
exec @rc=sp_oamethod @object,
                    'run',
                    null,
                    'osql -E -dtest -Sserver1  -q"usp_async"'
if @rc <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out 
select hr=convert(varbinary(4),@rc), 
          source=@src, 
          description=@desc
return
end
exec sp_oadestroy @object
print 'done....but usp_async still running'

fonte: http://www.databasejournal.com/features/mssql/article.php/10894_3427581_2/Submitting-A-Stored-Procedure-Asynchronously.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.