通过使用游标更改数据
ADO、OLE DB 和 ODBC API 支持更新结果集中应用程序所在的当前行。以下步骤说明了基本的过程:
- 将结果集列与程序变量绑定。
- 执行查询。
- 调用 API 函数或方法,将应用程序定位到结果集的某一行。
- 对于要更新的任何列,使用新数据值填充绑定程序变量。
- 调用下列一个函数或一种方法来插入行:
- 在 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 数据