2011-09-23 8 views
15

私はもともと、このように作成されたテーブルがあります:あなたがこれを行う場合はNULL可能な列にDEFAULT(NULL)を指定する理由はありますか?

CREATE TABLE dbo.XX (
YY int DEFAULT(NULL) 
) 

をし、その後でスクリプトのテーブルを、次のコードを取得します、プラス、ランダムな名前のデフォルトの制約:

CREATE TABLE [dbo].XX([YY] [int] NULL) 
GO 
ALTER TABLE [dbo].XX ADD DEFAULT (NULL) FOR [YY] 
GO 

を最初に残しておくのではなく、DEFAULT (NULL)を列に指定するのに実際のポイントがありますか?

+0

私がよく知っているデータベースではありません。 –

+11

2番目の考えでは、データの追加方法は変わりませんが、設計意図の表記と見なすことができます(「この列をNULLとして追加するつもりです。 「デフォルト」)、データベースの設計を次の人物に近づけるようにする。 –

+0

次の(関連する)質問:列に '[yy] [INTEGER]'のままにしておくのではなく、NULLを指定するのに何か問題がありますか? – onedaywhen

答えて

16

null可能な列にDEFAULT(NULL)を追加する必要はありません。

データがこのような列に供給されない場合は、NULLになります。

私が見る唯一の利点は、Larry Lustigが質問に彼のコメントで掲示されていることです - それはnullable列にデフォルトを追加することを忘れていないという事実を文書化しています。

+0

カラムを削除する前に、デフォルト制約を最初に削除する必要があります – Helic

6

私は考えることができません。

INSERT INTO [dbo].XX([YY]) VALUES (DEFAULT) 

INSERT INTO [dbo].XX([YY]) DEFAULT VALUES 

同じように動作します。

関連する問題