Results via UDF
Select s.ServerName From dbo.fnAvailableServers() s
Create Function fnAvailableServers()
Returns @Server table
(ServerNamevarchar( 255 ))
as
Begin
Declare
@rc int
, @object int
, @Method varchar(255)
, @cnt int
, @i int
, @name varchar(255)
-- initialize variables
set @i = 0
-- instantiate object
Exec @rc = sp_OACreate 'sqldmo.application', @object OUT
If @rc <> 0 Return
-- get count of servers
Exec @rc=sp_OAMethod @Object, 'ListAvailableSQLServers.count', @cnt out
If @rc <> 0 Return
-- loop through each server
while @i < @cnt
begin
set @i = @i + 1
set @method = 'ListAvailableSQLServers.item(' + cast(@i as varchar) + ')'
-- get server name
Exec @rc=sp_OAMethod @Object, @method, @name out
If @rc <> 0 Return
-- insert into table
Insert @Server (ServerName) values (@Name)
End
-- destroy objects
Exec @rc = sp_OADestroy @object
Return
End
GO