麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

利用帶關(guān)聯(lián)子查詢Update語句更新數(shù)據(jù)的方法

2020-10-29 21:50:30
字體:
供稿:網(wǎng)友

Update是T-sql中再簡單不過的語句了,update table set column=expression [where condition],我們都會(huì)用到。但update的用法不僅于此,真正在開發(fā)的時(shí)候,靈活恰當(dāng)?shù)厥褂胾pdate可以達(dá)到事半功倍的效果。

假定有表Table1(a,b,c)和Table2(a,c),現(xiàn)在Table1中有些記錄字段c為null,要根據(jù)字段a在Table2中查找,取出字段a相等的字段c的值來更新Table1。一種常規(guī)的思路,通過游標(biāo)遍歷Table1中字段c為null的所有記錄,在循環(huán)體內(nèi)查找Table2并進(jìn)行更新,即用游標(biāo)Cursor的形式。測試sql語句如下:

--1.創(chuàng)建測試表  create TABLE Table1  (    a varchar(10),    b varchar(10),    c varchar(10),    CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED    (      a ASC    )  ) ON [PRIMARY]  create TABLE Table2  (    a varchar(10),    c varchar(10),    CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED    (      a ASC    )  ) ON [PRIMARY]  GO  --2.創(chuàng)建測試數(shù)據(jù)  Insert into Table1 values('趙','asds',null)  Insert into Table1 values('錢','asds','100')  Insert into Table1 values('孫','asds','80')  Insert into Table1 values('李','asds',null)  Insert into Table2 values('趙','90')  Insert into Table2 values('錢','100')  Insert into Table2 values('孫','80')  Insert into Table2 values('李','95')  GO  select * from Table1  --3.通過游標(biāo)方式更新  declare @name varchar(10)  declare @score varchar(10)  declare mycursor cursor for select a from Table1 where c is null  open mycursor  fetch next from mycursor into @name  while(@@fetch_status = 0)  BEGIN    select @score=c from Table2 where a=@name    update Table1 set c = @score where a = @name    fetch next from mycursor into @name    END  close mycursor  deallocate mycursor  GO  --4.顯示更新后的結(jié)果  select * from Table1  GO  --5.刪除測試表  drop TABLE Table1  drop TABLE Table2

雖然用游標(biāo)可以實(shí)現(xiàn),但代碼看起來很復(fù)雜,其實(shí)用Update根據(jù)子關(guān)聯(lián)來更新只要一條語句就可以搞定了,測試代碼如下:

--1.創(chuàng)建測試表  create TABLE Table1  (    a varchar(10),    b varchar(10),    c varchar(10),    CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED    (      a ASC    )  ) ON [PRIMARY]  create TABLE Table2  (    a varchar(10),    c varchar(10),    CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED    (      a ASC    )  ) ON [PRIMARY]  GO  --2.創(chuàng)建測試數(shù)據(jù)  Insert into Table1 values('趙','asds',null)  Insert into Table1 values('錢','asds','100')  Insert into Table1 values('孫','asds','80')  Insert into Table1 values('李','asds',null)  Insert into Table2 values('趙','90')  Insert into Table2 values('錢','100')  Insert into Table2 values('孫','80')  Insert into Table2 values('李','95')  GO  select * from Table1  --3.通過Update方式更新  Update Table1 set c = (select c from Table2 where a = Table1.a) where c is null  GO  --4.顯示更新后的結(jié)果  select * from Table1  GO  --5.刪除測試表  drop TABLE Table1  drop TABLE Table2

參考資料:也許是被忽略的update語句,update 子查詢

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产亚洲精品影达达兔 | 精品国产一区二区久久 | 久久99久久98精品免观看软件 | www.91成人| 黄色的视频免费观看 | 午夜国产精品成人 | 性欧美极品xxxx欧美一区二区 | 国产精品成人一区二区三区电影毛片 | 日本人乱人乱亲乱色视频观看 | 国产精品久久久久久久av | 精品一区二区三区日本 | 免费国产在线视频 | 色999中文字幕 | 成年性羞羞视频免费观看无限 | 精品一区二区在线播放 | 中文字幕亚洲一区二区三区 | 91看片在线观看视频 | 日韩av电影免费在线观看 | 日韩在线毛片 | 午夜神马电影网 | 性猛交ⅹxxx乱巴西 在线播放中文 | 亚洲va久久久噜噜噜久久男同 | 99久久婷婷国产综合精品青牛牛 | 欧美精品一区二区三区在线播放 | 免费国产精品视频 | 欧美一区二区三区不卡免费观看 | 免费观看黄色片视频 | 午夜人体| 天天看天天摸天天操 | 蜜桃91麻豆 | 国产成人羞羞视频在线 | 欧美精品18videos性欧美 | 亚洲欧美在线看 | 黄色男女视频 | 2019天天干夜夜操 | 国产永久免费观看 | 精品国产一二区 | 久久国产28 | 国产一区国产二区在线观看 | 久久成人在线观看 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 |