Hallo Irina,
anstatt eines Cursors kann man eine separierte Liste über die FOR XML Klausel erzeugen, siehe z. B.:
Comma delimited
list creation in SQL Server T-SQL -Using XML PATH & correlated subquery for sublist Performance issue
Für Deine Tabellen (verkürzt und mit Annahmen) könnte das wie folgt aussehen:
CREATE TABLE dbo.Teilnehmer (Vorgang int);
CREATE TABLE dbo.Vorgang_Teilnehmer (Id int, Name varchar(10));
INSERT INTO Teilnehmer (Vorgang) VALUES (1000), (2000), (3000);
INSERT INTO Vorgang_Teilnehmer (Id, Name) VALUES
(1000, 'A'), (1000, 'B'), (1000, 'C'),
(2000, 'E'), (2000, 'F');
SELECT t.Vorgang,
(SELECT COUNT(*) FROM Vorgang_Teilnehmer AS v WHERE t.Vorgang = v.Id) AS NamenAnzahl,
Namen = LEFT(n.namen, LEN(n.namen)-1)
FROM Teilnehmer AS t
CROSS APPLY
(
SELECT REPLACE(v.Name, '/', '') + '/' AS [text()]
FROM Vorgang_Teilnehmer AS v
WHERE t.Vorgang = v.Id
ORDER BY v.Name
FOR XML PATH('')) AS n(namen)
ORDER BY t.Vorgang;
Im Nebengang wird die Anzahl über eine Unterabfrage ermittelt, was einfacher ist als Dein Ansatz in der anderen Diskussion.
Gruß Elmar