SQL 遊標的使用(更新資料)
一般情況下,我們用SELECT這些查詢語句時,都是針對的一行記錄而言,
如果要在查詢分析器中對多行記錄(即記錄集)進行讀取操作時,則需要使用到遊標或WHILE等迴圈
遊標的型別: 1、靜態遊標(不檢測資料行的變化)
2、動態遊標(反映所有資料行的改變)
3、僅向前遊標(不支援滾動)
4、鍵集遊標(能反映修改,但不能準確反映插入、刪除)
遊標使用順序:
1、定義遊標
2、開啟遊標
3、使用遊標
4、關閉遊標
5、釋放遊標
Transact-SQL:
declare 遊標名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC ] [READ_ONLY | SCROLL_LOCKS]
for selet
注:LOCAL 區域性遊標 GLOBAL 全域性遊標
FORWARD_ONLY 僅向前 SCROLL 滾動
STATIC 靜態 KEYSET 鍵集 DYNAMIC 動態
READ_ONLY 只讀 SCROLL_LOCKS 鎖定遊標當前行
獲取遊標的資料
FETCH [[NEXT | PRIOR | FIRST | LAST |
ABSOLUTE{ n | @nvar | RELATIVE { n | @nvar}]
From ] 遊標名 [into 變數]
注:
NEXT
LAST 最後一行 ABSOLUTE n 第n行
RELATIVE n 當前位置開始的第n行
into 變數 把當前行的各欄位值賦值給變數
遊標狀態變數:
@@fetch_status 遊標狀態
0 成功 -1 失敗 -2 丟失
@@cursor_rows 遊標中結果集中的行數
n 行數 -1 遊標是動態的 0 空集遊標操作遊標的當前行:
current of 遊標名
例1:利用遊標對查詢的資料集進行遍歷
use pubs
go
declare @auid char(12),@aulname varchar(20),@aufname varchar(20), @st char(2),@auinfo varchar(50)
declare auth_cur cursor for
select au_id, au_lname, au_fname, state
from authors
open auth_cur
fetch next from auth_cur into @auid,@aulname,@aufname, @st
while (@@fetch_status=0)
begin
print '作者編號: '[email protected]
print '作者姓名: '[email protected]+','[email protected]
print '所在州: '[email protected]
print '--------------------------'
fetch next from auth_cur into @auid,@aulname,@aufname, @st
end
close auth_cur
deallocate auth_cur
例2:利用遊標修改、刪除資料
declare auth_cur cursor scroll for
select au_id, au_lname, au_fname, state
from authors for update of au_lname
open auth_cur
declare @rowcount int
set @rowcount = 6
fetch absolute @rowcount from auth_cur --將變數@rowcount標識的行設定為當前行
--下面1行是利用遊標進行修改操作
update authors set au_lname='張' where current of auth_cur --修改遊標中的當前行
--下面1行是利用遊標進行刪除操作
delete from authors where current of auth_cur
相關推薦
SQL 遊標的使用(更新資料)
一般情況下,我們用SELECT這些查詢語句時,都是針對的一行記錄而言,如果要在查詢分析器中對多行記錄(即記錄集)進行讀取操作時,則需要使用到遊標或WHILE等迴圈 遊標的型別: 1、靜態遊標(不檢測資料行的變化) 2、動態遊標(反映所有資料行的改變) 3、僅向前遊
50個常用sql語句(含資料)
Code: 50個常用SQL語句 Student(S#,Sname,Sage,Ssex) 學生表 S#學號,主鍵 Course(C#,Cname,T#) 課程表 C#課程號,主鍵 SC(S#,C#,score) 成績表 Teacher(T#,Tn
50個經典的sql語句(含資料)
Code: 50個常用SQL語句 Student(S#,Sname,Sage,Ssex) 學生表 S#學號,主鍵 Course(C#,Cname,T#) 課程表 C#課程號,主鍵 SC(S#,C
SpringMVC_4_REST的GET(得到資料)、POST(新增資料)、DELETE(刪除資料)、PUT(更新資料)操作
REST REST:即 Representational State Transfer。**(資源)表現層狀態轉化。是目前最流行的一種網際網路軟體架構。**它結構清晰、符合標準、易於理解、擴充套件方便、所以正得到越來越多網站的採用 資源(Resources):**網路
Android 第十四課 使用LitePal新增資料(更新資料)
我們注意到當你登入一個app,是不是需要先註冊呢?,所謂註冊,簡單地來理解是不是就是把輸入框中地資料傳入資料庫中呢?這裡我們設定簡單一點,註冊的資訊只包括兩項,一項是使用者名稱,另一項是密碼。我們乾脆建立一個表Driveruser。在Android Studio 中新建一個j
Sql Server 遊標(利用遊標逐行更新資料)、儲存過程
遊標中用到的函式,就是前一篇文章中建立的那個函式。 另外,為了方便使用,把遊標放在儲存過程中,這樣就可以方便地直接使用儲存過程來執行遊標了。 1 create procedure UpdateHKUNo --儲存過程裡面放置遊標 2 as 3 begin 4
SQL的一些學習連結(更新中)
1. group by https://www.cnblogs.com/jingfengling/p/5962182.html where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾資料,where條件中不能包含聚組函式,使用where條件過濾
python入門23 pymssql模組(python連線sql server增刪改資料 )
增刪改資料必須connect.commit()才會生效 回滾函式 connect.rollback() 連線資料庫 ''' dinghanhua sql server增刪改 ''' import pymssql server = '192.168.1.1' user
資料閱讀(更新中)
在舊金山召開的人工智慧國際頂級會議AAAI 2017上,來自微軟亞洲研究院的鄭宇博士及其團隊的論文Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction首創性的將時空資料與深度學
記一次sql使用遊標迴圈更新資料
過程: ALTER PROCEDURE [dbo].[updateCode] AS BEGIN -- routine body goes here, e.g. -- SELECT 'Navicat for SQL Server' declare @gid
阿里雲大資料ACP認證知識點梳理4——基礎SQL語句(DDL部分)
creat table page_view (user_id bigint,view_time bigint,page_url string,referrer_url string,ip string comment 'creat table sql') partitioned by (dt string,c
阿里雲大資料ACP認證知識點梳理5——基礎SQL語句(DML部分)
insert overwrite table sale_detail_insert partition (sale_date='2013', region='china')insert into table sale_detail_insert partition (sale_date='2013', reg
sql系列(基礎篇)-前言 課前補充知識
ng- 2.0 .sql nbsp 值範圍 lease size cte file 前言 課前補充知識 Number(p,s) Number(p,s):數字類型,p 表示數字的有效長度(從數字的左邊第 1 位不為 0 的開始算起,直到最右邊的長度。取值範圍 0~38
redis 在Windows下的安裝及基本操作(更新中~~~)
有用 redis 安裝 abc nbsp com inux eas pan 安裝目錄 Redis 安裝 Window 下安裝 下載地址:https://github.com/MSOpenTech/redis/releases。 Redis 支持 32 位和 64 位。這個需
《深入理解Java虛擬機:JVM高級屬性與最佳實踐》讀書筆記(更新中)
pen 內存區域 深度 span 進化 ria 最短 描述 core 第一章:走進Java 概述 Java技術體系 Java發展史 Java虛擬機發展史 1996年 JDK1.0,出現Sun Classic VM HotSpot VM, 它是 Sun JDK 和 Open
初級程序員學習網站(更新ing)
ins lob 初級 ast ebo intellij sna vim使用 dir go語言學習: goexample快速學習:https://gobyexample.com/ 《Go入門指南》中文教程:https://github.com/Unknwon/the-way-
python總結(更新中)
註意 整數 元素 生成 更新 ron 外部 也會 mmu 1 python函數中的參數傳遞(註意可變和不可變傳遞) 可更改(mutable)與不可更改(immutable)對象 在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而
linux常用命令匯總(更新中...)
文本查看 ... lan 指定 編輯命令 顯示 查看文件內容 屏幕 一個 文本查看與編輯 1、文本編輯命令 vi/vim 2、查看文件內容命令 命令 說明 命令格式 參數 cat 將一個文件的內容連續輸出在屏幕上 cat [-option] 文件名 -n:將行號
SQL:查找被鎖的表,以及鎖表的SQL語句(重點推薦)
內存 結果 dea 但我 使用 相同 以及 serve 釋放 --死鎖檢測 use master Select * from sysprocesses where blocked<>0 --找到SPID exec sp_lock --根據SPI
Office 中的各種小tips(更新中)
pan lan tex 編號 裁剪 com 文獻 ffice text 1、Word 中打字輸入會擦掉之後原有字符,出現“吃字”的情況? 要將“改寫”切換為“插入”,最簡單的方法就是點擊鍵盤上小鍵