2013-08-30 19 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我發我的郵箱。當我從我的餐桌和年齡= 18的程序中選擇最高的1個值時,向我發送郵件,但是當我選擇前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 
相關問題