次の方法で共有


カーソルの使用によるデータの変更

ADO、OLE DB、および ODBC の各 API では、結果セット内でアプリケーションが位置付けられた現在の行の更新がサポートされます。次の手順は、基本的なプロセスを示しています。

  1. プログラム変数に結果セットの列をバインドします。
  2. クエリを実行します。
  3. 結果セット内の行にアプリケーションを位置付けるために API 関数またはメソッドを呼び出します。
  4. バインドしたプログラム変数に、更新する列の新しいデータ値を設定します。
  5. 次の関数またはメソッドのいずれかを呼び出して、行を挿入します。
    • ADO の場合は、Recordset オブジェクトの Update メソッドを呼び出します。
    • OLE DB の場合は、IRowsetChange インターフェイスの SetData メソッドを呼び出します。
    • ODBC の場合は、SQL_UPDATE オプションを指定して SQLSetPos 関数を呼び出します。

Transact-SQL サーバー カーソルを使用する際には、WHERE CURRENT OF 句を含んだ UPDATE ステートメントを使用して、現在の行を更新できます。この句を使用して行われる変更は、カーソルが位置付けられた行にしか適用されません。テーブルを結合して作成されたカーソルの場合は、UPDATE ステートメントで指定した table_name のテーブルのみが変更されます。この場合、カーソルに関連する他のテーブルには影響ありません。

USE AdventureWorks;
GO
DECLARE complex_cursor CURSOR FOR
    SELECT a.EmployeeID
    FROM HumanResources.EmployeePayHistory AS a
    WHERE RateChangeDate <> 
         (SELECT MAX(RateChangeDate)
          FROM HumanResources.EmployeePayHistory AS b
          WHERE a.EmployeeID = b.EmployeeID) ;
OPEN complex_cursor;
FETCH FROM complex_cursor;
UPDATE HumanResources.EmployeePayHistory
SET PayFrequency = 2 
WHERE CURRENT OF complex_cursor;
CLOSE complex_cursor;
DEALLOCATE complex_cursor;
GO

結合の詳細については、「結合の基礎」を参照してください。

参照

概念

UPDATE の使用によるデータの変更
ntext 型、text 型、または image 型の各データの変更

その他の技術情報

UPDATE (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手