Rückgaben von Stored Procedures ad hoc weiterverarbeiten

Wenn man die Rückgabe eines Resultsets einer Stored Procedure ad hoc in einer neuen Tabelle oder direkt weiterverarbeiten möchte, kann man mit Hilfe von OPENROWSET (siehe Hilfe, Ad Hoc Distributed Queries müssen erlaubt sein) ein wenig tricksen:

Der Einfachheit halber habe ich für das Beispiel die Stored Procedure sp_help verwendet:

Rückgabe in eine Tabelle schreiben

select *

into #t1

from openrowset

(

'SQLNCLI',

'Server=MeinServer\MeineInstanz;Trusted_Connection=yes;',

'exec sp_help;'

) as a;


select * from #t1

go


drop table #t1

go

oder einfach als Funktion weiterverwenden

create function dbo.fn_help()

returns table

as

return

(

select *

from openrowset

(

'SQLNCLI',

'Server=MeinServer\MeineInstanz;Trusted_Connection=yes;',

'exec sp_help;'

) as a

);

go

select * from dbo.fn_help()

drop function dbo.fn_help

Dieses Vorgehen sollte aber die Ausnahme bleiben, ad hoc eben.

Ergänzend siehe auch

http://www.insidesql.org/blogs/uricken/2010/08/20/verwendung-von-udf-auf-linked-server

 

Viele Grüße

Christoph Ingenhaag

 

Noch kein Feedback
Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht auf dieser Seite angezeigt.
SchlechtExzellent
(Zeilenumbrüche werden zu <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
Trackback-Adresse für diesen Eintrag

http://www.insidesql.org/blogs/htsrv/trackback.php?tb_id=1222