Błąd występuje tutaj, gdy masz wiele wierszy, które próbujesz przypisać do jednej zmiennej
SET @Recipients =(SELECT DISTINCT a.EMail
FROM a
--approximately 600 email addresses
Musisz zmienić to na oddzielną listę, w ten sposób
SET @Recipients = STUFF(
(select DISTINCT ';' + CAST(a.EMail AS varchar(max))
FROM a FOR XML PATH ('')
)
,1,1, '')
Uwaga:@Odbiorcy muszą być varchar(max)