欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
使用XML字段批量更新數據庫
使用XML字段批量更新數據庫 收藏
摘要:有時(shí)候我們想根據不同的where條件更新多條記錄,一般就需要用多條語(yǔ)句,本文教你怎樣用一次查詢(xún)完成,但XML處理會(huì )讓數據庫進(jìn)程CPU升高,請酌情使用。

--1、初始化臨時(shí)表及原始數據
if object_id('tempdb..#t') is not null
   drop table #t
if object_id('tempdb..#t2') is not null
   drop table #t2
create table #t(k varchar(100),v int)
insert into #t values('a',1)
insert into #t values('b',2)
select * from #t
--輸出如下
--k    v
--a-1
--b-2
--2、準備批量更新的XML
DECLARE @a TABLE(data XML)
INSERT @a SELECT '
<root>
    <i k=''a'' v=''3'' />
    <i k=''b'' v=''4'' />
</root>'
 
--3、將表變量a輸出到一個(gè)臨時(shí)結果集,并用來(lái)和原始表#t join后更改原始表
--這里用到了帶有from子句的update語(yǔ)句和cte類(lèi)型
update #t set #t.v = d.v
from #t inner join (
    SELECT b.id k,c.id v FROM @a a
    CROSS APPLY
    (
        SELECT id = t.x.value('@k','varchar(100)') FROM a.data.nodes('//i') AS t(x)
    ) b
    CROSS APPLY
    (
        SELECT id = t2.x.value('@v','int')
        FROM a.data.nodes('//i') AS t2(x)
        where t2.x.value('@k','varchar(100)') = b.id
    ) c
) as d
on #t.k = d.k
--其中cte d的結果集應該如下
--k    v
--a-3
--b-4
--4、驗證原始表是否已經(jīng)修改
select * from #t
--輸出如下
--k    v
--a-3
--b-4
本文來(lái)自CSDN博客,轉載請標明出處:http://blog.csdn.net/dayu027/archive/2008/12/31/3647265.aspx
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
XML和數據庫之間相互的映射
部分sql注入總結
使用ABAP SE16查看類(lèi)型為RAWSTRING的數據庫列字段值
mysql數據庫中利用GROUP
在ORACLE數據庫中查詢(xún)指定用戶(hù)的表結構
PowerDesigner 工具生成數據庫Report指導
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久