0
私はテーブルに計算された `BITカラムを追加しようとしていますが、なぜSQLがNOT NULLでないのかを理解するのは難しいです。私は何か間違っているのですか?これは不可能ですか?非永続化された計算されたBIT列はNOT NULLとしますか?
たとえば、このテーブルを取る:これらの列のいずれかが今までNULL
をするために、両方の列DateIsInPastInt
とDateIsInPastBit
については
CREATE TABLE MyTable (
SomeDate DATETIME NOT NULL,
DateIsInPastInt AS CASE WHEN SomeDate < GETUTCDATE() THEN 1 ELSE 0 END,
DateIsInPastBit AS CAST(CASE WHEN SomeDate < GETUTCDATE() THEN 1 ELSE 0 END AS BIT),
)
が、それは論理的に不可能です。しかし、SQLは、nullとしてDateIsInPastBit
を定義しています
は、私が何かをしないのですか、これは非持続BIT
列を計算して、単に可能ではないでしょうか?
はい、これは実際に機能します!実際には同様のアプローチを試みましたが、 'ISNULL'チェックを' CAST'の中に入れましたが、それでも動作しませんでした。何らかの理由で、私は外部に「CAST」が必要であると考えていました。ありがとう! –