ビューを使用したデータ変更
適用対象:SQL Server Analytics Platform System (PDW)
Azure SQL Database Azure SQL Managed Instance
Azure Synapse Analytics (すべてのサポートされているバージョン)
基になるベース テーブルのデータは、SQL Server または Transact-SQL Server Management Studioを使用して変更SQL。
はじめに
制限事項と制約事項
- CREATE VIEW (Transact-SQL) の「更新可能なビュー」セクションを参照してください。
アクセス許可
実行する操作に応じて、対象のテーブルに対する UPDATE 権限、INSERT 権限、または DELETE 権限が必要です。
SQL Server Management Studio を使用する
ビューを介してテーブル データを変更するには
オブジェクト エクスプローラーで、ビューを含むデータベースを展開し、 [ビュー] を展開します。
ビューを右クリックし、 [上位 200 行の編集] を選択します。
場合により、変更対象の行を取得するために SQL ペインの SELECT ステートメントを変更する必要があります。
結果 ペインで、変更または削除する行を見つけます。 行を削除するには、行を右クリックし、 [削除] を選択します。 1 つ以上の列のデータを変更するには、目的の列のデータを変更します。
重要!! ビューが複数のベース テーブルを参照している場合は、行を削除できません。 1 つのベース テーブルに属している列のみを更新することができます。
行を挿入するには、行の最後までスクロールし、新しい値を挿入します。
重要: ビューが複数のベース テーブルを参照している場合は、行を挿入できません。
Transact-SQL の使用
ビューを介してテーブル データを更新するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、ビュー
StartDate
の列を参照することによって特定の従業員のEndDate
列およびHumanResources.vEmployeeDepartmentHistory
列の値を変更します。 このビューは、2 つのテーブルの値を返します。 変更対象の列の所属先は 1 つのベース テーブルであるため、このステートメントは成功します。USE AdventureWorks2012 ; GO UPDATE HumanResources.vEmployeeDepartmentHistory SET StartDate = '20110203', EndDate = GETDATE() WHERE LastName = N'Smith' AND FirstName = 'Samantha'; GO
詳細については、「UPDATE (Transact-SQL)」を参照してください。
ビューを介してテーブル データを挿入するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、ビュー
HumanResouces.Department
の該当する列を指定することによって、新しい行をベース テーブルHumanResources.vEmployeeDepartmentHistory
に挿入します。 1 つのベース テーブルの列のみが指定され、ベース テーブルの他の列は既定値を持つため、このステートメントは成功します。USE AdventureWorks2012 ; GO INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName) VALUES ('MyDepartment', 'MyGroup'); GO
詳細については、「INSERT (Transact-SQL)」を参照してください。