連絡先のアカウント残高に関する情報を含むテーブルがあります。これには、最初の請求書の日付と最後の請求書の日付、および現在の残高を追跡するための列が含まれています。
新しい請求書が作成されるたびに、このテーブルは次の行に沿った単純なストアドプロシージャを介して更新されることが意図されています。
CREATE PROCEDURE UpdateContactFinancialInformation
@ContactId int,
@InvoiceDate date,
@Amount money
AS
UPDATE Contacts.ContactsFinancialInformation
SET LastInvoiceDate = @InvoiceDate,
CurrentBalance = CurrentBalance + @Amount
WHERE ContactId = @ContactId
新しい連絡先が作成されると、ContactsFinancialInformation
テーブルにデフォルトのエントリが作成され、FirstInvoiceDate
列のデフォルト値は。になりますNULL
。
上記の基本的なSQLステートメントにそのチェックを追加して、FirstInvoiceDate
列がNULLの場合@InvoiceDate
、ストアドプロシージャに渡されるパラメーターも設定されるようにします。
これを行うための最も効率的な方法は何ですか?