首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MS SQL Server 定位更新與刪除游標資料完整指南

     編輯:關於SqlServer

游標除了檢索資料,還能針對當前資料列執行定位更新或定位刪除。若在宣告游標時指定 FOR UPDATE 子句,即可使用 WHERE CURRENT OF 關鍵字直接修改或刪除游標指向的資料列,無需在 WHERE 子句重複指定條件。此操作會自動同步至基礎表。但若宣告時使用 INSENSITIVE 選項,游標資料將不可更新。

語法規則

UPDATE table_name SET column_name = expression [,...n] WHERE CURRENT OF cursor_name
DELETE FROM table_name WHERE CURRENT OF cursor_name
  • table_name:要更新或刪除的基礎表名稱。
  • column_name:要更新的欄位名稱。
  • cursor_name:游標名稱。

實作範例

範例 13-6:更新 authors 表的 au_lname 與 au_fname

更新範例

範例 13-7:刪除 authors 表的一筆資料

刪除範例

提示:所有定位更新/刪除操作皆基於游標的當前位置。

範例 13-8:完整定位更新流程

宣告游標查詢 authors 表,逐筆讀取,當 au_id = '172-32-1176' 時,將姓名更新為 'Smith'、'Jake'。

完整範例1 完整範例2

注意事項

  • 需在 DECLARE CURSOR 時加入 FOR UPDATE [OF column_list]。
  • 游標不可為 INSENSITIVE、STATIC 或唯讀模式。
  • 定位操作僅影響游標當前指向的那一列。

總結

WHERE CURRENT OF 機制提供直觀、高效的逐列修改方式,適用於需依據複雜邏輯逐筆審核更新的批次作業。善用此特性可簡化程式碼並確保資料一致性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved