利用SQL Server游标修改数据库中的数据


  本文标签:SQL Server游标

  SQL Server中的UPDATE语句和DELETE语句可以支持SQL Server游标操作,通过SQL Server游标修改或删除游标基表中的当前数据行操作是很常见的方法  。

  UPDATE语句的格式为:
UPDATE table_name
SET 列名=表达式}[,…n]
WHERE CURRENT OF cursor_name
DELETE语句的格式为:
DELETE FROM table_name
WHERE CURRENT OF cursor_name
说明:
CURRENT OF cursor_name:
表示当前游标指针所指的当前行数据  。CURRENT OF 只能在UPDATE和DELETE语句中使用  。
注意:
o使用游标修改基表数据的前提是声明的游标是可更新的  。
o 对相应的数据库对象(游标的基表)有修改和删除权限  。

  使用SQL Server游标时应注意的问题:

  (1) 尽管使用SQL Server游标比较灵活,可以实现对数据集中单行数据的直接操作,但游标会在下面几个方面影响系统的性能:
-使用游标会导致页锁与表锁的增加
-导致网络通信量的增加
-增加了服务器处理相应指令的额外开销

  (2) 使用SQL Server游标时的优化问题:
-明确指出游标的用途:for read only或for update
-在for update后指定被修改的列