[英]How to loop the variables in t-sql
我有一個T-SQL我必須循環變量。
DECLARE @empno nVARCHAR(MAX),@tableHTML NVARCHAR(MAX) ;
set @empno = (select Employee_No from emptemp where active = 'Yes');
SET @tableHTML =
N'<H2>Additions</H2>' +
N'<table border="1">' +
N'<th>Ename</th>' +
N'<th>Sal</th>' +
'<tr>' +
CAST ( ( select td=ename,'',td=sal,'' from emp Where empno = @empno)
FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) ) + N'</table>' ;
EXEC msdb.dbo.sp_send_dbmail
@recipients=someone@gmail.com,
@subject = emp ,
@body = @tableHTML , @body_format = 'HTML',
@profile_name = 'Sql Profile'
Emptemp表看起來像
id empno active
1 245 yes
2 124 yes
3 255 yes
4 224 No
我必須根據emp表中的數據發送單個郵件
這就是游標的樣子:
DECLARE @empno nVARCHAR(MAX)
DECLARE @tableHTML NVARCHAR(MAX) ;
DECLARE @ID INT;
DECLARE Curs CURSOR FAST_FORWARD
FOR
SELECT DISTINCT ID
FROM dEmptemp
WHERE active = 'Yes'
ORDER BY ID
OPEN Curs
FETCH NEXT FROM Curs INTO @ID
WHILE @@FETCH_STATUS = 0
BEGIN
set @empno = (SELECT empno FROM emptemp WHERE ID = @ID);
SET @tableHTML =
N'<H2>Additions</H2>' +
N'<table border="1">' +
N'<th>Ename</th>' +
N'<th>Sal</th>' +
'<tr>' +
CAST ( ( select td=ename,'',td=sal,'' from emp Where empno = @empno)
FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) ) + N'</table>' ;
EXEC msdb.dbo.sp_send_dbmail
@recipients=someone@gmail.com,
@subject = emp ,
@body = @tableHTML , @body_format = 'HTML',
@profile_name = 'Sql Profile'
FETCH NEXT FROM Curs INTO @ID
END
CLOSE Curs
DEALLOCATE Curs;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.