我的代碼中有 2 個 PRINT 陳述句,如下所示:
DECLARE @Msg VARCHAR(300)= 'Delete Email addresses that have been in the table for more than 30 days.';
PRINT @Msg;
-- If the email address has been in the table for more than 30 days, it should be removed
DELETE
--SELECT *
FROM CLNT_SVC_GOLD_SURVEY_EMAILS
WHERE DATE_ADDED < DATEADD(day, -30, GETDATE())
DECLARE @Msg1 VARCHAR(300)= 'Append data to the final table if it doesnt already exist.';
PRINT @Msg1;
-- Copy all records from the staging table where no existing email address exists in the final table
INSERT INTO CLNT_SVC_GOLD_SURVEY_EMAILS(ACCOUNT_FULL_NAME, ACCOUNT_NUMBER, CUSTOMER_FULL_NAME, CONTACT_EMAIL, DATE_ADDED)
SELECT
A.ACCOUNT_FULL_NAME,
A.ACCOUNT_NUMBER,
A.CUSTOMER_FULL_NAME,
A.CONTACT_EMAIL,
CONVERT(DATE, GETDATE()) as DATE_ADDED
FROM CLNT_SVC_GOLD_SURVEY A
LEFT JOIN CLNT_SVC_GOLD_SURVEY_EMAILS B
ON A.ACCOUNT_NUMBER = B.ACCOUNT_NUMBER
AND A.CONTACT_EMAIL = B.CONTACT_EMAIL
WHERE B.DATE_ADDED IS NULL
AND A.ACCOUNT_FULL_NAME NOT LIKE '%UNKNOWN%'
輸出如下所示:
洗掉表格中已存在 30 天以上的電子郵件地址。
(0 行受影響)
如果資料不存在,則將資料附加到最終表。(0 行受影響)
我有幾個問題。首先,有什么方法可以將記錄數整合到自定義訊息中并從自動訊息中洗掉?IE:
洗掉表格中已存在 30 天以上的電子郵件地址。此步驟影響了 0 行。
如果資料不存在,則將資料附加到最終表。此步驟影響了 0 行。
其次,如何獲得自定義列印訊息來列印撇號?我不得不從“doesnt”這個詞中洗掉它,因為我無法讓它作業。
uj5u.com熱心網友回復:
您需要轉到NOCOUNT,ON這意味著您沒有收到(0 row(s) affected)訊息,然后PRINT 在陳述句完成后將 的值合并@@ROWCOUNT到列印的訊息中:
SET NOCOUNT ON;
DELETE
FROM dbo.CLNT_SVC_GOLD_SURVEY_EMAILS
WHERE DATE_ADDED < DATEADD(day, -30, GETDATE());
PRINT CONCAT(N'Delete Email addresses that have been in the table for more than 30 days. This step affected ', @@ROWCOUNT,N' row(s).');
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/484550.html
