Salve, non so se scrivo nella sezione giusta

Dunque, dovrei fare una query un pò particolare, per iniziare ne ho fatta una con T-Sql che più avanti mi farà arrivare a quella finale, quindi se notate che l'eventuale risultato si poteva ottenere con una semplice query è solo perché questa fatta così mi serve per sperimentare

Ecco l'esempio.
codice:
SET NOCOUNT ON

DECLARE @login varchar(50)

DECLARE cursore CURSOR FOR 
select distinct utente
from tabella_prodotti with (nolock)

OPEN cursore

FETCH NEXT FROM cursore 
INTO @login

WHILE @@FETCH_STATUS = 0
BEGIN

select cognome,nome from tabella_utenti where login=@login;

FETCH NEXT FROM cursore 
INTO @login
END 
CLOSE cursore
DEALLOCATE cursore
Questa sintassi genera un serie si select separate composte da un'unica riga, quello che vorrei ottenere invece è una sola tabella che contiene tutte le righe generate da questa procedura.

avevo tentato con questo:
codice:
SET NOCOUNT ON

DECLARE @login varchar(50)

DECLARE cursore CURSOR FOR 
select distinct utente
from tabella_prodotti with (nolock)

OPEN cursore

FETCH NEXT FROM cursore 
INTO @login

IF @@FETCH_STATUS = 0
    BEGIN
    select cognome,nome from tabella_utenti where login=@login;
    FETCH NEXT FROM cursore 
    INTO @login
    END
WHILE @@FETCH_STATUS = 0
BEGIN

union
select cognome,nome from tabella_utenti where login=@login;

FETCH NEXT FROM cursore 
INTO @login
END 
CLOSE cursore
DEALLOCATE cursore
Ma mi ha fatto il gesto dell'ombrello (errore su union).

Avete qualche suggerimento?

Grazie