【2015/08/06】sqlserver中如何批量修改一個表的資料,2015sqlserver

來源:互聯網
上載者:User

【2015/08/06】sqlserver中如何批量修改一個表的資料,2015sqlserver

      這幾天的練習,碰到一點小問題,比如我在成績表裡面有成績初始化全部為0,那麼現在我想隨機產生100以內的資料寫進去,應該怎樣操作呢?用到幾個小函數就行了,

       一個是rand()

        它負責產生隨機數。

       一個是cast()

        它負責類型轉換。

        一個是round() 

        它負責的是四捨五入取值。除此,floor()代表向下取值,而ceiling()代表向上取值。

        

        接下來呢,就是對錶score的操作,首先要產生一個暫存資料表#temp.    

      

select  identity(int,1,1) id, * into temp from score
       注意,裡面的id是我自己增加的列,如果你的表裡面有主鍵,並且不是組合主鍵,可以不用加id這一列。

        其實,成批修改一個表的資料的中心思想就是,讓記得表有自增長的列,如果原本有就最好,如果沒有的話,就建立一個暫存資料表,讓暫存資料表裡面有這樣的一個列,然後讓兩個表串連。串連之後每一項都有一個自增長的列,然後設定一個臨時變數,讓它和自增長的列進行比較,然後根據臨邊變數的值,一行一行地修改表的資料。

        說的不清楚,加一段代碼就好了

         

declare @total int,@cur int    select @total=count(*)from #tempset @tot=1WHILE  @tot<=@total  beginupdate score set chengji= cast(100*rand()as int)from score t1,#temp t2where t1.stu=t2.stuand t1.course=t2.courseand t2.id=@curset @tot=@tot+1end
      大家看懂代碼應該就能理解我說的意思了。

 

      

  

        


         

         

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.