列の既定値の指定
適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server Management Studio (SSMS) を使用して、テーブル列に入力される既定値を指定できます。 オブジェクト エクスプローラーを使用するか、Transact-SQL を実行してデフォルトを設定できます。
列にデフォルト値を割り当てず、ユーザーが列を空白のままにした場合、次のようになります。
NULL 値を許可するオプションを設定すると、列に
NULL
が挿入されます。NULL 値を許可するオプションを設定しない場合、列は空白のままになりますが、ユーザーは列に値を入力するまで行を保存できません。
制限事項
始める前に、次の制限事項と制約事項に注意してください。
バインドされた既定値 (かっこなしで表示されている値) を [既定値] フィールドに入力した値で置き換える場合は、既定値のバインドを解除し、新しい既定値で置き換えるかどうかを確認するメッセージが表示されます。
テキスト文字列を入力するには、値を単一引用符 (
'
) で囲みます。 二重引用符 ("
) は引用符で囲まれた識別子用に予約されているため、使用しないでください。数値の既定値を入力するには、引用符で囲まずに番号を入力します。
オブジェクトまたは関数を入力するには、引用符で囲まずにオブジェクト名または関数名を入力します。
Note
Azure Synapse Analytics では、既定の制約に使用できるのは定数だけです。 式は、既定の制約には使用できません。
アクセス許可
この記事で説明するアクションには、テーブルに対する ALTER ALTER
アクセス許可が必要です。
SQL Server Management Studio を使用して既定値を指定する
SSMS でオブジェクト エクスプローラーを使用して、テーブルの列の既定値を指定できます。 そのためには、次の手順に従います。
SSMS を使用して SQL Server インスタンスに接続します。
オブジェクト エクスプローラーで、有効桁数を変更する列が含まれているテーブルを右クリックして、[デザイン] を選択します。
既定値を指定する列を選択します。
[列のプロパティ] タブで、 [既定値またはバインド] プロパティに新たな既定値を入力します。
数値の既定値を入力するには、数値を入力します。 オブジェクトまたは関数の場合は、その名前を入力します。 英数字の場合は、その値を単一引用符で囲んで入力します。
[ファイル] メニューで、[<<テーブル名>> を保存] を選択します。
Transact-SQL を使用して既定値を指定する
T-SQL を送信することにより、さまざまな方法で列の既定値を指定できます。 次の各例では、次の手順で新しい Transact-SQL クエリを開くことができます。
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。
ALTER TABLEを使用する
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT
); -- Allows nulls.
GO
INSERT INTO dbo.doc_exz (column_a)
VALUES (7);
GO
ALTER TABLE dbo.doc_exz
ADD CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50 FOR column_b;
GO
CREATE TABLEを使用する
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT DEFAULT 50
);
名前付き制約を使用する
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50
);