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
Print article | This entry was posted by Christoph Ingenhaag on 31.08.10 at 16:03:25 . Follow any responses to this post through RSS 2.0. |