参考:http://blog.csdn.net/luminji/article/details/5130004
利用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后指定被修改的列