数据库update(动态更新)-SqlServer
生活随笔
收集整理的這篇文章主要介紹了
数据库update(动态更新)-SqlServer
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近項(xiàng)目上經(jīng)常需要去通過(guò)SQL腳本去刷數(shù)據(jù)庫(kù)歷史數(shù)據(jù)的情況
--第一種:簡(jiǎn)單更新的SQL語(yǔ)句 update 表名 set 字段 = 更新值 where 條件 --第一種方式簡(jiǎn)單,但是個(gè)別復(fù)雜的情況難以直接更新--第二種:復(fù)雜的通過(guò)腳本寫(xiě)邏輯 DECLARE @ID VARCHAR(10), @TEXT VARCHAR(7999), @JMTX VARCHAR(7999) DECLARE My_Cursor CURSOR --定義游標(biāo) FOR (select xx字段 from xxx表 where 條件) --查出需要的數(shù)據(jù)放到游標(biāo)中 OPEN My_Cursor; --打開(kāi)游標(biāo) FETCH NEXT FROM My_Cursor into @ID; --讀取第一行數(shù)據(jù) WHILE @@FETCH_STATUS = 0BEGIN--遍歷ID查詢單條數(shù)據(jù)set @TEXT=(select xx字段1 from xxx表1 where xx字段2 = @ID);if(@TEXT IS null)begin--更新語(yǔ)句update 表名 set 字段 = 更新值 where 條件end END CLOSE My_Cursor; --關(guān)閉游標(biāo) DEALLOCATE My_Cursor; --釋放游標(biāo) --第二種方式的話稍微比較麻煩--第三種:簡(jiǎn)易更新語(yǔ)句升級(jí)版(在需要更新值的值查出來(lái)放到同一行數(shù)據(jù)中以便獲取) update t1 set t1.zbbm1 = t2.cbbm from xx表1 t1 inner join (select requestid,cbbm from xx表2) t2 on t1.lcid = t2.requestid where (t1.zbbm1 is null or LTrim(RTrim(t1.zbbm1)) = '')還有什么更好的SQL腳本寫(xiě)法也可以分享一下啦
總結(jié)
以上是生活随笔為你收集整理的数据库update(动态更新)-SqlServer的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 机器语言、汇编语言、高级语言特点和区别
- 下一篇: PostgreSQL 之 Pgpool概