Sql server SQL电子邮件通知
对于您的善意帮助,请按照以下程序向我发送包含贷款的电子邮件,这些贷款将在当前日期起2个月后结束,如果没有结果,则仍向我发送电子邮件,说明没有受影响的行 所有我需要的只是收到电子邮件时,有结果,如果没有结果,不要发送电子邮件Sql server SQL电子邮件通知,sql-server,Sql Server,对于您的善意帮助,请按照以下程序向我发送包含贷款的电子邮件,这些贷款将在当前日期起2个月后结束,如果没有结果,则仍向我发送电子邮件,说明没有受影响的行 所有我需要的只是收到电子邮件时,有结果,如果没有结果,不要发送电子邮件 ALTER PROCEDURE [LoanEndByTwoMonths_SP] -- Add the parameters for the stored procedure here AS BEGIN SET NOCOUNT ON; IF (
ALTER PROCEDURE [LoanEndByTwoMonths_SP]
-- Add the parameters for the stored procedure here
AS
BEGIN
SET NOCOUNT ON;
IF
(
SELECT COUNT(LoanID)
FROM ELSBassel.Loan.Loans
) > 0
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'ELS',
@recipients = 'Bassel.Mahmoud@test.com',
@query = 'SELECT LoanStartDate,
LoanStartDate + DATEADD(MONTH, AvailabilityPMonth, 0) - 1 AS LoanEndDate,
[FinanceSourceID]
FROM ELSBassel.Loan.Loans
WHERE(LoanStartDate + DATEADD(MONTH, AvailabilityPMonth, 0) - 1) = (DATEADD(MONTH, 2, GETDATE()))
ORDER BY LoanStartDate + DATEADD(MONTH, AvailabilityPMonth, 0) - 1 DESC;',
@execute_query_database = 'ELSBassel',
@subject = 'Loan will end after two months';
COMMIT;
END;
END;
GO
我认为,只要在WHERE子句中添加相同的WHERE条件,就可以解决您的问题:
ALTER PROCEDURE [LoanEndByTwoMonths_SP]
-- Add the parameters for the stored procedure here
AS
BEGIN
SET NOCOUNT ON;
IF
(
SELECT COUNT(LoanID)
FROM ELSBassel.Loan.Loans
WHERE (LoanStartDate + DATEADD(MONTH, AvailabilityPMonth, 0) - 1)
= (DATEADD(MONTH, 2, GETDATE()))
) > 0
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'ELS',
@recipients = 'Bassel.Mahmoud@test.com',
@query = 'SELECT LoanStartDate,
LoanStartDate + DATEADD(MONTH, AvailabilityPMonth, 0) - 1 AS LoanEndDate,
[FinanceSourceID]
FROM ELSBassel.Loan.Loans
WHERE(LoanStartDate + DATEADD(MONTH, AvailabilityPMonth, 0) - 1) = (DATEADD(MONTH, 2, GETDATE()))
ORDER BY LoanStartDate + DATEADD(MONTH, AvailabilityPMonth, 0) - 1 DESC;',
@execute_query_database = 'ELSBassel',
@subject = 'Loan will end after two months';
COMMIT;
END;
END;
GO
正如Angel M在Bolloanks bro下面回复的,非常感谢您的回复,我的问题已经解决。