テーブルの作成 (データベース エンジン)

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

SQL Server Management Studio (SSMS) または Transact-SQL のテーブル デザイナーを使用して、新しいテーブルを作成し、名前を付け、既存のデータベースに追加できます。

アクセス許可

このタスクには、データベースの CREATE TABLE 権限と、テーブルを作成するスキーマの ALTER 権限が必要です。

CREATE TABLE ステートメント内の列を CLR ユーザー定義型として定義する場合は、その型の所有権か、その型に対する REFERENCES 権限が必要です。

CREATE TABLE ステートメント内の列に XML スキーマ コレクションが関連付けられている場合は、その XML スキーマ コレクションの所有権か、そのスキーマ コレクションに対する REFERENCES 権限が必要です。

SQL Server Management Studioでテーブル デザイナーを使用する

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

  2. オブジェクト エクスプローラーで、 [データベース] ノードを展開し、新しいテーブルを格納するデータベースを展開します。

  3. オブジェクト エクスプローラーで、データベースの [テーブル] ノードを右クリックし、[新しいテーブル] を選択します。

  4. 次の図に示すように、列名を入力し、データ型を選択した後、各列で null 値を許可するかどうかを選択します。

    ModifiedDate 列に [Null を許容] オプションが選択されていることを示すスクリーンショット。

  5. ID や計算列の値など、列のプロパティをさらに指定するには、列を選択し、[列のプロパティ] タブで適切なプロパティを選択します。 列のプロパティの詳細については、「テーブル列のプロパティ (SQL Server Management Studio)」を参照してください。

  6. 列を主キーとして指定するには、列を右クリックし、 [主キーの設定]をクリックします。 詳細については、「 Create Primary Keys」を参照してください。

  7. 外部キーのリレーションシップ、CHECK 制約、またはインデックスを作成するには、テーブル デザイナー ペイン内で右クリックし、次の図に示すように、一覧からオブジェクトを選択します。

    [リレーションシップ] オプションを示すスクリーンショット。

    これらのオブジェクトの詳細については、「 Create Foreign Key Relationships」、「 Create Check Constraints 」、および「 Indexes」を参照してください。

  8. 既定では、テーブルは dbo スキーマに含まれています。 テーブルに対して別のスキーマを指定するには、テーブル デザイナー ペイン内で右クリックし、次の図に示すように、 [プロパティ] を選択します。 [スキーマ] ボックスの一覧で、適切なスキーマを選択します。

    [スキーマ] オプションが表示されている [プロパティ] ペインのスクリーンショット。

    スキーマの詳細については、「 Create a Database Schema」を参照してください。

  9. [ファイル] メニューの [<テーブル名> を保存] をクリックします。

  10. [ 名前の選択 ] ダイアログ ボックスで、テーブルの名前を入力し、[ OK] を選択します

  11. 新しいテーブルを表示するには、 オブジェクト エクスプローラーで、 [テーブル] ノードを展開し、 F5 キーを押してオブジェクトの一覧を更新します。 新しいテーブルがテーブルの一覧に表示されます。

Transact-SQL の使用

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

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

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

    CREATE TABLE dbo.PurchaseOrderDetail (
        PurchaseOrderID INT NOT NULL,
        LineNumber SMALLINT NOT NULL,
        ProductID INT NULL,
        UnitPrice MONEY NULL,
        OrderQty SMALLINT NULL,
        ReceivedQty FLOAT NULL,
        RejectedQty FLOAT NULL,
        DueDate DATETIME NULL
    );
    

次の手順