ビューを使用したデータ変更Modify Data Through a View

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL Server 2017SQL Server 2017 では、 SQL Server Management StudioSQL Server Management Studio または Transact-SQLTransact-SQLを使用して、基になるデータベース テーブルのデータを変更できます。You can modify the data of an underlying base table in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

はじめにBefore You Begin

制限事項と制約事項Limitations and Restrictions

PermissionsPermissions

実行する操作に応じて、対象のテーブルに対する UPDATE 権限、INSERT 権限、または DELETE 権限が必要です。Requires UPDATE, INSERT, or DELETE permissions on the target table, depending on the action being performed.

SQL Server Management Studio の使用Using SQL Server Management Studio

ビューを介してテーブル データを変更するにはTo modify table data through a view

  1. オブジェクト エクスプローラーで、ビューを含むデータベースを展開し、 [ビュー] を展開します。In Object Explorer, expand the database that contains the view and then expand Views.

  2. ビューを右クリックし、 [上位 200 行の編集] を選択します。Right-click the view and select Edit Top 200 Rows.

  3. 場合により、変更対象の行を取得するために SQL ペインの SELECT ステートメントを変更する必要があります。You may need to modify the SELECT statement in the SQL pane to return the rows to be modified.

  4. 結果 ペインで、変更または削除する行を見つけます。In the Results pane, locate the row to be changed or deleted. 行を削除するには、行を右クリックし、 [削除] を選択します。To delete the row, right-click the row and select Delete. 1 つ以上の列のデータを変更するには、目的の列のデータを変更します。To change data in one or more columns, modify the data in the column.

    重要!!IMPORTANT!! ビューが複数のベース テーブルを参照している場合は、行を削除できません。You cannot delete a row if the view references more than one base table. 1 つのベース テーブルに属している列のみを更新することができます。You can only update columns that belong to a single base table.

  5. 行を挿入するには、行の最後までスクロールし、新しい値を挿入します。To insert a row, scroll down to the end of the rows and insert the new values.

フィードバックをお待ちしております。 この記事の手順やコード例の中で、古い情報や間違っている情報を見つけた場合は、ぜひお知らせください。We are listening: If you find something outdated or incorrect in this article, such as a step or a code example, please tell us. このページの下部にある [フィードバック] セクション内で [このページ] ボタンをクリックしてください。You can click the This page button in the Feedback section at the bottom of this page. SQL に関するフィードバックのすべての項目に目を通しています (通常は翌日)。We read every item of feedback about SQL, typically the next day. よろしくお願いいたします。Thanks.

> **IMPORTANT!** You cannot insert a row if the view references more than one base table.  

Transact-SQL の使用Using Transact-SQL

ビューを介してテーブル データを更新するにはTo update table data through a view

  1. オブジェクト エクスプローラーで、 データベース エンジンDatabase Engineのインスタンスに接続します。In Object Explorer, connect to an instance of データベース エンジンDatabase Engine.

  2. [標準] ツール バーの [新しいクエリ] をクリックします。On the Standard bar, click New Query.

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。Copy and paste the following example into the query window and click Execute. この例では、ビュー StartDate の列を参照することによって特定の従業員の EndDate 列および HumanResources.vEmployeeDepartmentHistory列の値を変更します。This example changes the value in the StartDate and EndDate columns for a specific employee by referencing columns in the view HumanResources.vEmployeeDepartmentHistory. このビューは、2 つのテーブルの値を返します。This view returns values from two tables. 変更対象の列の所属先は 1 つのベース テーブルであるため、このステートメントは成功します。This statement succeeds because the columns being modified are from only one of the base tables.

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

詳細については、「UPDATE (Transact-SQL)」を参照してください。For more information, see UPDATE (Transact-SQL).

ビューを介してテーブル データを挿入するにはTo insert table data through a view

  1. オブジェクト エクスプローラーで、 データベース エンジンDatabase Engineのインスタンスに接続します。In Object Explorer, connect to an instance of データベース エンジンDatabase Engine.

  2. [標準] ツール バーの [新しいクエリ] をクリックします。On the Standard bar, click New Query.

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。Copy and paste the following example into the query window and click Execute. この例では、ビュー HumanResouces.Department の該当する列を指定することによって、新しい行をベース テーブル HumanResources.vEmployeeDepartmentHistoryに挿入します。The example inserts a new row into the base table HumanResouces.Department by specifying the relevant columns from the view HumanResources.vEmployeeDepartmentHistory. 1 つのベース テーブルの列のみが指定され、ベース テーブルの他の列は既定値を持つため、このステートメントは成功します。The statement succeeds because only columns from a single base table are specified and the other columns in the base table have default values.

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

詳細については、「INSERT (Transact-SQL)」を参照してください。For more information, see INSERT (Transact-SQL).