2013-08-30 6 views
1

сохранили процедуру:Как отправить выбранные значения

declare @fistName nvarchar(50) , @lastName nvarchar(50) , @age int , @text nvarchar(max) 

SELECT TOP 10 @fistName = fistName , @lastName = lastName , @age = age 
FROM users                  

if @age = 18 
SELECT @text = 'First Name : ' + @age + CHAR(13) + 'Last Name : ' + @lastName 

@text vallue Я послал на мою почту. Когда я выбираю 1 верхнюю часть из моего стола и возраст = 18, отправьте мне письмо, но когда я выбираю 10 лучших вариантов и имею много первых и фамилий с 18 лет, он не отправляет мне письма, какие-либо предложения?

+0

Да! Отправьте код, который вы используете для отправки писем. Это мое предложение. Может быть, после этого вы получите квалифицированный ответ. На первый взгляд: вы не создаете результирующий набор всех записей, а один результат для каждой записи. –

+0

это процедура вроде 'myProc 'ReportName', 'Subject', 'Body'' – GeoVIP

+2

За 10 значений отправляет почту с данными последнего участника или без почты? И вы отправляете код, где, по вашему мнению, проблема. Но проблема может быть в другом месте. Лучше вставьте полный код, скрывая бизнес-логику. –

ответ

1

Попробуйте этот запрос -

DECLARE @text NVARCHAR(MAX) 

SELECT @text = STUFF((
    SELECT TOP 10 
     CHAR(13) + 'First Name : ' + fistName + 
     CHAR(13) + 'Last Name : ' + lastName 
    FROM dbo.users 
    WHERE age = 18 
    FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') 

SELECT @text 
Смежные вопросы