|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使为了数据安全,我们搭建了主从。但实时主从备份只能防止硬件问题,比如主库的硬盘损坏。但对于误操作,则无能为力。比如在主库误删一张表,或者一个update语句没有指定where条件,导致全表被更新。
先创立一个视图
Createviewfielddesc
as
selecto.nameastable_name,c.nameasfield_name,t.nameastype,c.lengthas
length,c.isnullableasisnullable,convert(varchar(30),p.value)asdesp
fromsyscolumnsc
joinsystypestonc.xtype=t.xusertype
joinsysobjectsoono.id=c.id
leftjoinsyspropertiesponp.smallid=c.colidandp.id=o.id
whereo.xtype=U
查询时:
Select*fromfielddescwheretable_name=你的表名
另有个更强的语句,是邹建写的,也写出来吧
SELECT
(casewhena.colorder=1thend.nameelseend)N表名,
a.colorderN字段序号,
a.nameN字段名,
(casewhenCOLUMNPROPERTY(a.id,a.name,IsIdentity)=1then√elseend)N标识,
(casewhen(SELECTcount(*)
FROMsysobjects
WHERE(namein
(SELECTname
FROMsysindexes
WHERE(id=a.id)AND(indidin
(SELECTindid
FROMsysindexkeys
WHERE(id=a.id)AND(colidin
(SELECTcolid
FROMsyscolumns
WHERE(id=a.id)AND(name=a.name)))))))AND
(xtype=PK))>0then√elseend)N主键,
b.nameN范例,
a.lengthN占用字节数,
COLUMNPROPERTY(a.id,a.name,PRECISION)asN长度,
isnull(COLUMNPROPERTY(a.id,a.name,Scale),0)asN小数位数,
(casewhena.isnullable=1then√elseend)N同意空,
isnull(e.text,)N默许值,
isnull(g.[value],)ASN字段申明
--into##tx
FROMsyscolumnsaleftjoinsystypesb
ona.xtype=b.xusertype
innerjoinsysobjectsd
ona.id=d.idandd.xtype=Uandd.namedtproperties
leftjoinsyscommentse
ona.cdefault=e.id
leftjoinsyspropertiesg
ona.id=g.idANDa.colid=g.smallid
orderbyobject_name(a.id),a.colorder
这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。 |
|