Я использую функцию, подобную приведенной ниже, для решения аналогичной ситуации при получении подобных списков из внешнего интерфейса. Тогда вы можете просто использовать этот код для возврата строки в виде таблицы:
SELECT DISTINCT String FROM dbo.GetTableFromStringList(@recipients)
Вы, вероятно, хотите сделать фактическую отправку электронного письма чем-то отличным от кода T-SQL.
Вот функция:
CREATE FUNCTION [dbo].[GetTableFromStringList]
(
@StringList VARCHAR(1000),
@Delimiter CHAR(1) = ','
)
RETURNS @Results TABLE
(
String VARCHAR(1000) NOT NULL
)
AS
BEGIN
DECLARE
@string VARCHAR(1000),
@position SMALLINT
SET @StringList = LTRIM(RTRIM(@StringList)) + @Delimiter
SET @position = CHARINDEX(@Delimiter, @StringList)
WHILE (@position > 0)
BEGIN
SET @string = LTRIM(RTRIM(LEFT(@StringList, @position - 1)))
IF (@string <> '')
BEGIN
INSERT INTO @Results (String) VALUES (@string)
END
SET @StringList = RIGHT(@StringList, LEN(@StringList) - @position)
SET @position = CHARINDEX(@Delimiter, @StringList, 1)
END
RETURN
END