私は100以上のカラムを使用して構築しているSQL Serverテーブルを持っています。私はUPDATE TABLE_NAME
クエリを実行してそのテーブルにデータを設定しています。ただし、使用可能なレコードがない場合は、NULL
がレコードに挿入されます。これは、私が実行しなければならない計算を困難にします。テーブル全体からNULLを取得する
私はCREATE TABLE
文でNOT NULL
とDEFAULT (0)
でテーブルを作成しようとしたが、私が更新を実行すると、それはNULL値を挿入しようと、私はこのエラーを取得:
UPDATE文:
UPDATE TABLE_NAME
SET NumOrders = (SELECT count(OrderID) FROM ORDERS WHERE TABLE_NAME.CUSTOMER_ID = ORDERS.CUSTOMER_ID);
:
Cannot insert the value NULL into column 'NumOrders', table 'TABLE_NAME'; column does not allow nulls. UPDATE fails.
私は、次のようなNULLSを除去するために第二更新クエリを実行することができ
UPDATE TABLE_NAME
SET NumOrders = 0
WHERE NumOrders IS NULL;
これは、私が書かなければならない更新クエリを倍増させているようです。
これを行うには、より良い方法が必要です。
おかげ
テーブルに100個以上の列がありますか? – slinzerthegod
問題の原因となっている更新のスニペットを表示できますか? – Anon246
100列?パフォーマンスの悪夢が起こるのを待っているように聞こえる - それはリファクタリングできないだろうか? – KingCronus