SQL Server 2008 Management Studioを使用しています。以下は私が書かなければならないものであり、第2の制約のためにいくつかの困難を抱えています。それは私を少し混乱させ、私は本当にいくつかの助けに感謝します。SQL Server条件付きCHECK制約
APデータベースの請求書テーブルに2つの新しいチェック制約を追加するALTER TABLEステートメントを作成します。最初は、(1)PaymentTotalがゼロの場合のみPaymentDateをnullにし、(2)PaymentTotalがゼロより大きい場合のみPaymentDateがnullでないようにする必要があります。 2番目の制約は、PaymentTotalとCreditTotalの合計がInvoiceTotalより大きくならないようにする必要があります。
ここでは、最初の制約は機能しますが、2番目の制約はありません(PaymentTotalとCreditTotalの合計がInvoiceTotalより大きい)。
ALTER TABLE Invoices WITH CHECK
ADD check (
(PaymentTotal = 0 AND PaymentDate is NULL)
OR
(PaymentTotal > 0 AND PaymentDate is NOT NULL)
)
ADD CHECK (
(PaymentTotal < InvoiceTotal = SUM)
OR
(CreditTotal < InvoiceTotal = SUM)
)
ありがとうございました。
宿題の質問? – Seph
第1の変更はあなたに何が起こらなければならないかを伝えています – xQbert