9

我需要从 SQL Server 向不断变化的名称列表发送电子邮件。幸运的是,用户将名称更新到 SQL Server 表中,因此它应该始终是最新的。

我已经研究过,并希望用来sp_SQLNotify发送电子邮件。(这已经使用实际的名称列表进行设置和测试 - 尚未使用变量)。

无论如何,我需要用要发送到的电子邮件地址列表填充一个变量。

为了做到这一点,我需要相当于:

SELECT DISTINCT [Email_Username] + '@my_email_suffix.com; '
INTO @VARIABLE
FROM My_Table

EXEC sp_SQLNotify @Variable 'My Header' 'My wall of text'

这可能吗,我需要遵循的真正语法是什么?

请原谅我的无知,但我在一些语法上很挣扎。

谢谢,克雷格。

===== 已更新答案 =====

感谢亚伦。

我使用您的代码作为工作解决方案的基础。

对于将来尝试这样做的任何人,最终结果是:

-- Declare variable and populate with initial apostrophe
DECLARE @var VARCHAR(MAX) = '''';

-- Populate variable with all unique email user names
SELECT @var += x.email
FROM 
(
  SELECT DISTINCT [Email_Username] + '@my_email_suffix.com;'  AS email
  FROM dbo.[My_Table]
  WHERE [Email_Username] <> ''
) AS x 

-- Remove final semi-colon
SET @var = left(@var,len(@var)-1)

-- Add final apostrophe
SET @var = @var + ''''

-- Display result
SELECT @VAR;
4

1 回答 1

13
DECLARE @var VARCHAR(MAX) = '';

SELECT @var += x.email
FROM 
(
  SELECT DISTINCT (Email_Username + '@my_email_suffix.com;') as email
  FROM dbo.My_Table
) AS x;

SELECT @var;
于 2013-02-06T17:40:49.613 回答