次の方法で共有


ビューを使用してデータを変更する

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server Management Studio または Transact-SQL を使用して、SQL Server の基礎となるベース テーブルのデータを変更することができます。

制限事項

CREATE VIEW の「更新可能なビュー」セクションを 参照してください

アクセス許可

実行されるアクションに応じて、ターゲット テーブルに対する UPDATEINSERT、または DELETE のアクセス許可が必要です。

SQL Server Management Studio を使用する

ビューを使用してテーブル データを変更する

  1. オブジェクト エクスプローラーで、ビューを含むデータベースを展開し、 [ビュー]を展開します。

  2. ビューを右クリックし、 [上位 200 行の編集]を選択します。

  3. SELECT ペインの ステートメントを変更して、変更する行を返す必要がある場合があります。

  4. 結果 ペインで、変更または削除する行を見つけます。 行を削除するには、行を右クリックし、 [削除]を選択します。 1 つ以上の列のデータを変更するには、目的の列のデータを変更します。

    ビューが複数のベース テーブルを参照している場合、行を削除することはできません。 1 つのベース テーブルに属している列のみを更新することができます。

  5. 行を挿入するには、行の最後までスクロールし、新しい値を挿入します。

    ビューが複数のベース テーブルを参照している場合は、行を挿入できません。

Transact-SQL の使用

ビューを使用してテーブル データを更新する

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

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

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、実行 選択します。 この例では、ビュー StartDate の列を参照することによって特定の従業員の EndDate 列および HumanResources.vEmployeeDepartmentHistory列の値を変更します。 このビューは、2 つのテーブルの値を返します。 変更対象の列の所属先は 1 つのベース テーブルであるため、このステートメントは成功します。

    USE AdventureWorks2022;
    GO
    
    UPDATE HumanResources.vEmployeeDepartmentHistory
        SET StartDate = '20110203',
            EndDate   = GETDATE()
    WHERE LastName = N'Smith'
          AND FirstName = 'Samantha';
    GO
    

詳細については、「 UPDATE」を参照してください。

ビューを使用してテーブル データを挿入する

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

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

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、実行 選択します。 この例では、ビュー HumanResources.Department の該当する列を指定することによって、新しい行をベース テーブル HumanResources.vEmployeeDepartmentHistoryに挿入します。 1 つのベース テーブルの列のみが指定され、ベース テーブルの他の列は既定値を持つため、このステートメントは成功します。

    USE AdventureWorks2022;
    GO
    
    INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName)
    VALUES ('MyDepartment', 'MyGroup');
    GO
    

詳細については、「 INSERT」を参照してください。