仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 769|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL教程之使用存储历程失掉某一指定的表与别的的...

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:52 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先说DDL的分类。有一类DDL,是不需要重建表的,比如加非聚簇索引。这类操作其实不会丢数据,也是在原表上直接操作,对于我们“以恢复数据为目的”的闪回,是可以先忽略的。另外一类,则是会影响到表数据的操作。server|存储历程--我参照的表名我的果些字段[5]要参照以下表[1]的某些字段[3]的取值
declare@idbigint
select@id=idfromsysobjectswherename=d_病人材料库
selecta.nameN被参照表名,b.rkeyN被参照列在被参照表中的地位,c.nameN被参照列名,b.fkeyN参照字段在本表中的各位置,d.nameN参照字段名
fromsysforeignkeysb,sysobjectsa,syscolumnsc,(selectname,colidfromsyscolumnswhereid=@ID)d
wherea.id=b.rkeyidandb.fkeyid=@IDandc.id=a.idandc.colid=b.rkeyandd.colid=b.fkey
---我被参的表名以下的表[1]的某列[2]的取值请求参照我的哪些字段[5]
selecta.nameN参照我的表名,c.nameN列名,b.fkeyN参照字段地位,b.rkeyN我被参照字段在表中的地位,d.nameN我被参照的字段名
fromsysforeignkeysb,sysobjectsa,syscolumnsc,(selectname,colidfromsyscolumnswhereid=@ID)d
wherea.id=b.fkeyidandb.rkeyid=@IDandc.id=a.idandc.colid=b.fkeyandd.colid=b.rkey
我们只需要把binlog文件反向执行,每个操作都执行逆操作即可。当然也不是所有的event都反转。Table_mapevent必须还是在Rows_log_event每个操作之前。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-19 07:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表