mssql數(shù)據(jù)庫(kù)游標(biāo)批量修改符合條件記錄的方法
但每個(gè)項(xiàng)目不能一樣,否則容易看出問(wèn)題,呵呵 。
DECLARE @Id varchar(50)
DECLARE My_Cursor CURSOR --定義游標(biāo)
FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出需要的集合放到游標(biāo)中
OPEN My_Cursor; --打開(kāi)游標(biāo)
FETCH NEXT FROM My_Cursor INTO @Id; --讀取第一行數(shù)據(jù)(將Id放到@Id變量中)
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @Id; --打印數(shù)據(jù)(Id)
UPDATE dbo.kinpanAwardProject SET ProTicketCount = cast( floor(rand()*30) as int)+40 WHERE Id = @Id; --更新數(shù)據(jù),使用隨機(jī)數(shù)。
FETCH NEXT FROM My_Cursor INTO @Id; --讀取下一行數(shù)據(jù)(將查詢的Id放到@Id變量中)
END
CLOSE My_Cursor; --關(guān)閉游標(biāo)
DEALLOCATE My_Cursor; --釋放游標(biāo)
GO
還有一種用法,可能更加好,我認(rèn)為,如果不需要對(duì)id進(jìn)行判斷的話,在修改時(shí)就不需要where查詢,直接修改游標(biāo)當(dāng)前位置會(huì)更快。
DECLARE My_Cursor CURSOR --定義游標(biāo)
FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游標(biāo)中
OPEN My_Cursor; --打開(kāi)游標(biāo)
FETCH NEXT FROM My_Cursor ; --讀取第一行數(shù)據(jù)
WHILE @@FETCH_STATUS = 0
BEGIN
--UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新
--DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --刪除
FETCH NEXT FROM My_Cursor; --讀取下一行數(shù)據(jù)
END
CLOSE My_Cursor; --關(guān)閉游標(biāo)
DEALLOCATE My_Cursor; --釋放游標(biāo)
GO
相關(guān)文章
MSSQL2005數(shù)據(jù)庫(kù)備份導(dǎo)入MSSQL2000
需要將數(shù)據(jù)從mssql2005轉(zhuǎn)到mssql2000,因?yàn)榘l(fā)現(xiàn)sql2005用起來(lái)并不舒服直接restore或附加應(yīng)該是不行的, 用腳本+導(dǎo)數(shù)據(jù)肯定沒(méi)有問(wèn)題。2008-05-05
SQL Server 2005基礎(chǔ)知識(shí)詳細(xì)整理
以下是小編對(duì)SQL Server 2005中的基礎(chǔ)知識(shí)進(jìn)行了詳細(xì)的綜合整理。需要的朋友可以過(guò)來(lái)參考下2013-08-08
SQLServer無(wú)法打開(kāi)用戶默認(rèn)數(shù)據(jù)庫(kù) 登錄失敗錯(cuò)誤4064的解決方法
這篇文章主要介紹了SQLServer無(wú)法打開(kāi)用戶默認(rèn)數(shù)據(jù)庫(kù) 登錄失敗錯(cuò)誤4064的解決方法,需要的朋友可以參考下2015-01-01
sql server 關(guān)于設(shè)置null的一些建議
我們?cè)谠O(shè)計(jì)數(shù)據(jù)庫(kù)表的時(shí)候,總有些疑惑,到底是允許為NULL還是不允許為NULL,本文幫大家解除這個(gè)疑惑。2016-05-05
sqlserver2005打造自動(dòng)備份的維護(hù)計(jì)劃圖解教程
SQL Server 2005中可以使用維護(hù)計(jì)劃來(lái)為數(shù)據(jù)庫(kù)自動(dòng)備份,減少數(shù)據(jù)庫(kù)管理員的工作負(fù)擔(dān)。2011-06-06
sql里將重復(fù)行數(shù)據(jù)合并為一行數(shù)據(jù)使用逗號(hào)進(jìn)行分隔
sql里將重復(fù)行數(shù)據(jù)合并為一行,將多行fieldname字段的內(nèi)容串聯(lián)起來(lái),用逗號(hào)分隔,接下來(lái)為大家介紹下詳細(xì)的實(shí)現(xiàn)sql語(yǔ)句,希望對(duì)你有所幫助2013-04-04
sql2008 附加數(shù)據(jù)庫(kù)時(shí)出現(xiàn)錯(cuò)誤5123提示的解決方法
今天重裝了一下家里電腦的數(shù)據(jù)庫(kù),在附加己有數(shù)據(jù)庫(kù)時(shí),出現(xiàn)5123錯(cuò)誤2011-11-11
SQL server 2005中設(shè)置自動(dòng)編號(hào)字段的方法
這篇文章主要介紹了SQL server 2005中設(shè)置自動(dòng)編號(hào)字段的方法 ,需要的朋友可以參考下2015-08-08
winXP系統(tǒng)安裝SQLServer2005開(kāi)發(fā)版具體過(guò)程與注意問(wèn)題
XP系統(tǒng)系統(tǒng)只能安裝SQL Server 2005開(kāi)發(fā)版,可以到到網(wǎng)上下載SQL Server 2005開(kāi)發(fā)版的iso文件2009-08-08

