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

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

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

2024-08-31 01:02:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了利用帶關(guān)聯(lián)子查詢(xún)Update語(yǔ)句更新數(shù)據(jù)的方法,需要的朋友可以參考下
 
 

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

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

--1.創(chuàng)建測(cè)試表  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)建測(cè)試數(shù)據(jù)  Insert into Table1 values('趙','asds',null)  Insert into Table1 values('錢(qián)','asds','100')  Insert into Table1 values('孫','asds','80')  Insert into Table1 values('李','asds',null)  Insert into Table2 values('趙','90')  Insert into Table2 values('錢(qián)','100')  Insert into Table2 values('孫','80')  Insert into Table2 values('李','95')  GO  select * from Table1  --3.通過(guò)游標(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.刪除測(cè)試表  drop TABLE Table1  drop TABLE Table2

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

--1.創(chuàng)建測(cè)試表  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)建測(cè)試數(shù)據(jù)  Insert into Table1 values('趙','asds',null)  Insert into Table1 values('錢(qián)','asds','100')  Insert into Table1 values('孫','asds','80')  Insert into Table1 values('李','asds',null)  Insert into Table2 values('趙','90')  Insert into Table2 values('錢(qián)','100')  Insert into Table2 values('孫','80')  Insert into Table2 values('李','95')  GO  select * from Table1  --3.通過(guò)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.刪除測(cè)試表  drop TABLE Table1  drop TABLE Table2

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 一起草av在线 | 91网址在线观看 | 中文字幕精品一二三四五六七八 | 男女视频免费看 | 欧美xxxxx视频| 午夜在线成人 | 石原莉奈日韩一区二区三区 | 欧美重口另类videos人妖 | 色爱99 | 日本网站在线播放 | 13一14毛片免费看 | 黄色7777| 51国产偷自视频区视频小蝌蚪 | 日韩精品无码一区二区三区 | 中文字幕在线成人 | 成人免费av在线播放 | 91在线免费观看 | 久久久久久亚洲综合影院红桃 | 国产亚洲精品久久 | 成年性羞羞视频免费观看 | 精品成人免费一区二区在线播放 | 国产美女精品视频 | 亚洲视频观看 | 一区二区久久电影 | 操你视频| 国产99久久久久久免费看 | 久久久久99精品 | 国产欧美亚洲精品a | 国产一级免费视频 | 九九热视频这里只有精品 | 羞羞的动漫在线观看 | 欧美一区二区三区不卡免费观看 | www.91成人| 九九精品在线观看视频 | 欧美激情999 | av免费在线观看国产 | 国产成人精品视频在线 | 99爱精品在线| 日韩欧美高清一区 | 欧美精品成人一区二区在线观看 | 久草亚洲视频 |