利用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后指定被修改的列
【編輯推薦】