列の既定値の指定

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server Management Studio を使用して、テーブルの列に入力される既定値を指定できます。 既定値を設定するには、SSMS オブジェクト エクスプローラーを使用するか、Transact-SQL を実行します。

列に既定値を割り当てなかった場合、ユーザーが列に何も入力しないと、次のようになります。

  • null 値を許可するオプションを設定した場合は、列に NULL が挿入されます。

  • NULL 値を許可するオプションを設定していない場合は、列が空白のままになります。ただし、列に値を指定しないと、行を保存できません。

制限事項と制約事項

始める前に、次の制限事項と制約事項に注意してください。

  • バインドされた既定値 (かっこなしで表示されている値) を [既定値] フィールドに入力した値で置き換える場合は、既定値のバインドを解除し、新しい既定値で置き換えるかどうかを確認するメッセージが表示されます。
  • 文字列を入力するには、値を単一引用符 (') で囲みます。二重引用符 (") では囲まないでください。二重引用符は、二重引用符で囲む必要がある識別子のために予約されています。
  • 数値の既定値を入力するには、引用符で囲まずに番号を入力します。
  • オブジェクトまたは関数を入力するには、引用符で囲まずにオブジェクト名または関数名を入力します。

注意

Azure Synapse Analytics では、既定の制約に使用できるのは定数だけです。 式は、既定の制約には使用できません。

アクセス許可

この記事で説明するアクションには、テーブルに対する ALTER アクセス許可が必要です。

SSMS を使用して既定値を指定する

SSMS でオブジェクト エクスプローラーを使用して、テーブルの列の既定値を指定できます。 次の手順で行います。

  1. SSMS を使用して SQL Server インスタンスに接続します。

  2. オブジェクト エクスプローラーで、有効桁数を変更する列が含まれているテーブルを右クリックして、[デザイン] を選択します。

  3. 既定値を指定する列を選択します。

  4. [列のプロパティ] タブで、 [既定値またはバインド] プロパティに新たな既定値を入力します。

    注意

    数値の既定値を入力するには、数値を入力します。 オブジェクトまたは関数の場合は、その名前を入力します。 英数字の場合は、その値を単一引用符で囲んで入力します。

  5. [ファイル] メニューの [<テーブル名> を保存] を選びます。

Transact-SQL を使用して既定値を指定する

T-SQL を送信することにより、さまざまな方法で列の既定値を指定できます。

ALTER TABLE (T-SQL)

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. 標準バーで、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。

    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 (T-SQL)

    CREATE TABLE dbo.doc_exz (
      column_a INT,
      column_b INT DEFAULT 50);

名前付き制約 (T-SQL)

    CREATE TABLE dbo.doc_exz (
      column_a INT,
      column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50);

次のステップ

詳細については、「ALTER TABLE (Transact-SQL)」を参照してください。