私は、この定義につまずい:NOT NULLフィールドで "default defaults"を明示的に使用しているMS SQL - なぜですか?
CREATE TABLE dbo.whatever (
[flBlahBlah] BIT DEFAULT ((0)) NOT NULL,
[txCity] NVARCHAR (50) DEFAULT ('') NOT NULL,
[cdFrom] VARCHAR (10) DEFAULT ('') NOT NULL
);
私はそれらのデフォルト値を追加するための理由を考えることはできません。 NOT NULL文字列のデフォルトは''
で、ビットのデフォルトは0
です。これらのデフォルト値を定義する理由はありますか?何か不足していますか?これは私が気づいていないベストプラクティスのハンドブックにありますか?
私はちょうど使用したい:
CREATE TABLE dbo.whatever (
[flBlahBlah] BIT NOT NULL,
[txCity] NVARCHAR (50) NOT NULL,
[cdFrom] VARCHAR (10) NOT NULL
);
データベースは現在、Azureデータベースへの移行、MS SQL Server 2012のです。
'VARCHAR NOT NULL'のデフォルトは' '' 'ではないためです。 'NOT NULL'フィールドに値を指定しないと、エラーがスローされます。システムのデフォルトはありません。 – Siyual
「デフォルトのデフォルト」とはどういう意味ですか?あなたが何かを選択しない限り、デフォルトはありません。誰かが '何か(txCity)の値( 'hello');'を実行すると、バージョン1では動作しますが、デフォルトなしではバージョンでは動作しません。 –
列の値を指定せずにそのテーブルに行を挿入しようとすると、その行が防止されます。明示的に指定しないと、自動化されたデフォルト値はありません。 –