sql server 千万级大数据sql更新_医疗SQL每日实例6数据更新大法
Update Day
數(shù)據(jù)更新大法
生/命/不/止/SQL/不/休
01
更新數(shù)據(jù)的鐵規(guī)
? ? ? 所有數(shù)據(jù)在被更新之前,必須先查詢出數(shù)據(jù)結(jié)果,確認無誤,再復制整行到下兩行。將select * 更改為upate ,然后選擇整個UPDATE 語句后,再執(zhí)行命令。否則一旦出問題,就追悔莫極,如果有DBA還好,如果沒有,就默默擦淚,迎接狂風暴雨吧。
02
更新數(shù)據(jù)的寫法
1、單表單字段更新
update 表名 set 字段名=值 where 條件字段=字段值
例:
把病人的狀態(tài)改為出院結(jié)算
update 病人信息表 set 狀態(tài)='出院結(jié)算' where 住院號='888888'?
2、單表多字段更新
update 病人信息表 set 狀態(tài)='出院未結(jié)算',出院科室=NULL where 住院號='888888'?
3、多表關(guān)聯(lián)進行單表字段更新
update A set 狀態(tài)='出院未結(jié)算',出院科室=NULL from?病人信息表? A,病人住院記錄表 b??where a.病人ID=B.病人ID where A.住院號='888888'?
4、跨數(shù)據(jù)庫多表關(guān)聯(lián)進行單表字段更新
update A set 狀態(tài)='出院未結(jié)算',出院科室=NULL from? [醫(yī)院測試數(shù)據(jù)庫].[HIS].病人信息表? A,病人住院記錄表 b??where a.病人ID=B.病人ID where A.住院號='888888'?
5、跨服務器跨數(shù)據(jù)庫多表關(guān)聯(lián)進行單表字段更新
update A set 狀態(tài)='出院未結(jié)算',出院科室=NULL from [192.168.8.8].[醫(yī)院測試數(shù)據(jù)庫].[HIS].病人信息表? A,病人住院記錄表 b??where a.病人ID=B.病人ID where A.住院號='888888'?
6、建立備份隨時恢復自己
select * into #t from 病人信息表 where?住院號='888888'
臨時表里的數(shù)據(jù)和臨時表關(guān)閉此查詢分析器就消失了。
03
更新數(shù)據(jù)的問答
提問
為什么要先查再更新?
來自一個老鳥的回答,如果不想給自己找不自在,聽前輩的準沒錯。俗話說,常在河邊走,哪有不濕鞋。當你滿屏幕都是SQL語句的時候,你就能理解了。
提問
跨服務器更新的前提是什么?
先要在數(shù)據(jù)庫上做好鏈接服務器,命令是
sp_addlinkedserver?具體用法自行百度。提問
如果更新錯了怎么辦?
如果覺得自己有點緊張,可以在更新之前,先把數(shù)據(jù)備份成一張正式表,一定要寫好用備份表恢復生產(chǎn)數(shù)據(jù)的語句,然后再執(zhí)行更新命令。一旦發(fā)現(xiàn)有錯誤,立即恢復,然后再查原因。
否則會嚇的你當時腦子一片空白,因為你的一個小小誤操作有可能會導致全院系統(tǒng)宕機。
結(jié)束
不信可以試試ending
歡迎一起來吹水
總結(jié)
以上是生活随笔為你收集整理的sql server 千万级大数据sql更新_医疗SQL每日实例6数据更新大法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring 动态代理_分析动态代理给
- 下一篇: 不孕不育的药物治疗方法