1.將資料庫中查詢的表格導出到指定的路徑,首先啟用.xp_cmdshell,上一篇隨筆有寫如何開啟.xp_cmdshell。 DECLARE @sql NVARCHAR(4000) --定義變數存儲格式 DECLARE @server NVARCHAR(20) --定義變數存儲格式 set @ser ...
1.將資料庫中查詢的表格導出到指定的路徑,首先啟用.xp_cmdshell,上一篇隨筆有寫如何開啟.xp_cmdshell。
DECLARE @sql NVARCHAR(4000) --定義變數存儲格式
DECLARE @server NVARCHAR(20) --定義變數存儲格式
set @server='localhost' --賦值變數
DECLARE @filename1 NVARCHAR(max) --定義變數存儲格式
SET @filename1='D:\\GSFiles\\HRLeave\\MonthStat\\GSOT_WeekRep_'+CONVERT(NVARCHAR,GETDATE(),112)+'.xls' --賦值變數路徑
SET @sql= 'bcp "SELECT adays,empid,empname,THour3,DeptID,DeptName FROM GSeServiceDB.dbo.GSOT_Alarm_Day002_TOTAL" queryout '+@filename1+' -c -w -S '+@server+' -T ' --使用bcp queryout SQL語句導出資料庫表存儲到本地
EXEC master..xp_cmdshell @sql --執行@sql 的bcp命令
2.將存儲本地的excel用郵件方式發送
EXEC msdb.dbo.sp_send_dbmail
@profile_name='MIS_EBIZ',
@recipients='郵件地址',
@copy_recipients='',
@blind_copy_recipients='',
@subject='',
@body='',
@body_format='HTML', --傳送格式語言
@file_attachments =@filename1; --帶入賦值變數存儲的路徑文件(附件)
註:SELECT @MailTo=COALESCE(@MailTo + ';' , '') + Email FROM account_Users WHERE EmpID in (select empid from GSOT_Group_Adm) AND IsLeave='N' AND Email!='' AND Email!='*******' --使用COALESCE函數將查詢到的郵件地址以分號(;)隔開合併