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

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

このトピックの内容In This Topic

はじめにBefore You Begin

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

セキュリティSecurity

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.

    重要

    ビューが複数のベース テーブルを参照している場合は、行を削除できません。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.

    重要

    ビューが複数のベース テーブルを参照している場合は、行を挿入できません。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).