需求:由於項目剛上傳,沒有票數,為了表現出一定的人氣,需要在一開始把各項目的票數賦一個值 ,
但每個項目不能一樣,否則容易看出問題,呵呵 。
復制代碼 代碼如下:
DECLARE @Id varchar(50)
DECLARE My_Cursor CURSOR --定義游標
FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出需要的集合放到游標中
OPEN My_Cursor; --打開游標
FETCH NEXT FROM My_Cursor INTO @Id; --讀取第一行數據(將Id放到@Id變量中)
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @Id; --打印數據(Id)
UPDATE dbo.kinpanAwardProject SET ProTicketCount = cast( floor(rand()*30) as int)+40 WHERE Id = @Id; --更新數據,使用隨機數。
FETCH NEXT FROM My_Cursor INTO @Id; --讀取下一行數據(將查詢的Id放到@Id變量中)
END
CLOSE My_Cursor; --關閉游標
DEALLOCATE My_Cursor; --釋放游標
GO
還有一種用法,可能更加好,我認為,如果不需要對id進行判斷的話,在修改時就不需要where查詢,直接修改游標當前位置會更快。
復制代碼 代碼如下:
DECLARE My_Cursor CURSOR --定義游標
FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游標中
OPEN My_Cursor; --打開游標
FETCH NEXT FROM My_Cursor ; --讀取第一行數據
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; --讀取下一行數據
END
CLOSE My_Cursor; --關閉游標
DEALLOCATE My_Cursor; --釋放游標
GO