Update Day
数据更新大法
生/命/不/止/SQL/不/休
01
更新数据的铁规
所有数据在被更新之前,必须先查询出数据结果,确认无误,再复制整行到下两行。将select * 更改为upate ,然后选择整个UPDATE 语句后,再执行命令。否则一旦出问题,就追悔莫极,如果有DBA还好,如果没有,就默默擦泪,迎接狂风暴雨吧。
02
更新数据的写法
1、单表单字段更新
update 表名 set 字段名=值 where 条件字段=字段值
例:
把病人的状态改为出院结算
update 病人信息表 set 状态='出院结算' where 住院号='888888'
2、单表多字段更新
update 病人信息表 set 状态='出院未结算',出院科室=NULL where 住院号='888888'
3、多表关联进行单表字段更新
update A set 状态='出院未结算',出院科室=NULL from 病人信息表 A,病人住院记录表 b where a.病人ID=B.病人ID where A.住院号='888888'
4、跨数据库多表关联进行单表字段更新
update A set 状态='出院未结算',出院科室=NULL from [医院测试数据库].[HIS].病人信息表 A,病人住院记录表 b where a.病人ID=B.病人ID where A.住院号='888888'
5、跨服务器跨数据库多表关联进行单表字段更新
update A set 状态='出院未结算',出院科室=NULL from [192.168.8.8].[医院测试数据库].[HIS].病人信息表 A,病人住院记录表 b where a.病人ID=B.病人ID where A.住院号='888888'
6、建立备份随时恢复自己
select * into #t from 病人信息表 where 住院号='888888'
临时表里的数据和临时表关闭此查询分析器就消失了。
03
更新数据的问答
提问
为什么要先查再更新?
来自一个老鸟的回答,如果不想给自己找不自在,听前辈的准没错。俗话说,常在河边走,哪有不湿鞋。当你满屏幕都是SQL语句的时候,你就能理解了。
提问
跨服务器更新的前提是什么?
先要在数据库上做好链接服务器,命令是
sp_addlinkedserver 具体用法自行百度。
提问
如果更新错了怎么办?
如果觉得自己有点紧张,可以在更新之前,先把数据备份成一张正式表,一定要写好用备份表恢复生产数据的语句,然后再执行更新命令。一旦发现有错误,立即恢复,然后再查原因。
否则会吓的你当时脑子一片空白,因为你的一个小小误操作有可能会导致全院系统宕机。
结束
不信可以试试ending
欢迎一起来吹水