Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL电子邮件通知_Sql Server - Fatal编程技术网

Sql server SQL电子邮件通知

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 (

对于您的善意帮助,请按照以下程序向我发送包含贷款的电子邮件,这些贷款将在当前日期起2个月后结束,如果没有结果,则仍向我发送电子邮件,说明没有受影响的行

所有我需要的只是收到电子邮件时,有结果,如果没有结果,不要发送电子邮件

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下面回复的,非常感谢您的回复,我的问题已经解决。