生产库自动派送报表派送失败之重新派送
/*
Description: 生產庫自動派送報表派送失敗之重新派送???
*/
?
USE [DB]????? --Replace yourDB
GO
?
DECLARE ?? @ProductDate????? nvarchar(10) = N'2014-01-01'
DECLARE?????? @FactoryCode????? nvarchar(10) = N'X'
?
DECLARE @strSQL????????? nvarchar(3000)
DECLARE @strCRLF???? nvarchar(2)
DECLARE @strCmdShell nvarchar(255)
?
DECLARE @pFactoryName??? nvarchar(50)
DECLARE @pSubjectText??? nvarchar(255)
DECLARE @pBodyText?????? nvarchar(max)
DECLARE??? @pRecipients? nvarchar(max)
DECLARE @Attachments nvarchar(max)
?
DECLARE @RetVal????????? int
?
DECLARE @is_master_dw??? int
DECLARE @SQLMailProfile? nvarchar(255)
?
DECLARE @template_path????? nvarchar(255)
DECLARE @template_name????? nvarchar(255)
DECLARE @report_target_name nvarchar(255)
DECLARE @report_full_path?? nvarchar(255)
?
SET NOCOUNT ON;
?
SET @strCRLF = NCHAR(13) + NCHAR(10)
?
-----------------------------------------------------------------------
PRINT @strCRLF + N'********** 產生DB 生產日報表並自動發送**********'
?
--預設是當天的日報表
IF @ProductDate = N'' SET @ProductDate = LEFT(CONVERT(nvarchar(20), GETDATE(), 120), 10)
--IF@ProductDate = N'' SET @ProductDate = LEFT(CONVERT(nvarchar(20), DATEADD(DD,-1, GETDATE()), 120), 10)
?
--未指定工廠代碼就是全部
IF @FactoryCode = N'' SET @FactoryCode = NULL
?
/* 讀取系統參數*/
SET @is_master_dw = CAST(dbo.fn_GetParameter(N'@is_master_dw') AS int)
SET @SQLMailProfile? = CAST(dbo.fn_GetParameter(N'@sqlmail_profile') AS nvarchar)
???
SET @template_path?? = CAST(dbo.fn_GetParameter(N'@template_path') AS nvarchar)
SET @template_name?? = CAST(dbo.fn_GetParameter(N'@template_name') AS nvarchar)
SET @report_target_name? = CAST(dbo.fn_GetParameter(N'@report_target_name')AS nvarchar)
?
SET @report_full_path = @template_path + N'\' + @report_target_name
?
???
--以下是自動派送EMAIL 給各收件人
--SET@pRecipients = dbo.fn_GetRecipients()
SET @pRecipients = dbo.fn_GetRecipientsByCode(N'DailyReport')
SET @pRecipients += ';mail@163.com'????????????????? --Replaceyour mail address....
?
IF @is_master_dw = 1
??? SET @pSubjectText= N'<<<XXXXXXXX日報表自動派送>>> 生產日期:' + @ProductDate
ELSE
BEGIN
??? /* 只處理一個廠,取得加工廠名稱*/
??? SELECT TOP1 @pFactoryName =FactoryName FROMdbo.T_factory WHERE IsActive = 1
??? SET @pSubjectText= N'<<<'+ @pFactoryName+ N'生產狀況日報表自動派送>>> 生產日期:' +@ProductDate
END
?
?
SET @pBodyText? = N'Dear All,' + @strCRLF+ @strCRLF
?
SET @pBodyText += N'附件為' +@ProductDate + N' 的生產狀況日報表,請參閱。' + @strCRLF
IF @is_master_dw =1 SET @pBodyText+= N'如需其他生產數據查詢,請進本公司XXXX 系統查詢,網址為http://XXXX.COM.CN' +@strCRLF + @strCRLF
SET @pBodyText += @strCRLF
?
--SET@Attachments = N'D:\DB\DBDailyReport.xls'
SET @Attachments = @report_full_path
?
PRINT @pRecipients
PRINT @pBodyText
PRINT @pSubjectText
PRINT @Attachments
?
EXEC msdb.dbo.sp_send_dbmail
??? @profile_name =@SQLMailProfile,
??? @recipients = @pRecipients,
??? @body =@pBodyText,
??? @subject =@pSubjectText,
??? @file_p_w_uploads = @Attachments
?
/*
?* 查詢郵件失敗之項目
USE msdb
GO
SELECT * FROMsysmail_account
SELECT * FROMsysmail_allitems ORDER BY mailitem_id DESC??? --sent_status
*/
轉載于:https://blog.51cto.com/kinwar/1548847
總結
以上是生活随笔為你收集整理的生产库自动派送报表派送失败之重新派送的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到自己拉屎好不好
- 下一篇: easyui validatebox 验