仓酷云

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

[学习教程] 判别存储历程是不是存在

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:19:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我们只需要把binlog文件反向执行,每个操作都执行逆操作即可。当然也不是所有的event都反转。Table_mapevent必须还是在Rows_log_event每个操作之前。可使用sysobjects表中纪录共同OBJECTPROPERTY函数来判别指定的存储历程是不是存在。

好比我们要判别存储历程storage_summary是不是存在:
ifexists(select1fromdbo.sysobjectswhereid=object_id(N[storage_summary]andxtype=p)andOBJECTPROPERTY(object_id(N[storage_summary]),NIsProcedure)=1)
dropprocedure[dbo].[storage_summary]
go


sysobjects表人人大概很熟习了,但OBJECTPROPERTY函数大概会对照生疏,上面我们对OBJECTPROPERTY函数复杂先容一下:

OBJECTPROPERTY函数是用来前往以后数据库中架构局限内的工具的有关信息

语法:OBJECTPROPERTY(id,property)

当proerty即是IsProcedure时,前往指定的id是不是为存储历程
前往值:
1=True
0=False为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。
透明 该用户已被删除
沙发
发表于 2015-1-18 12:56:07 来自手机 | 只看该作者
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
小妖女 该用户已被删除
板凳
发表于 2015-1-24 20:02:30 | 只看该作者
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
小魔女 该用户已被删除
地板
发表于 2015-2-2 13:39:55 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
小女巫 该用户已被删除
5#
发表于 2015-2-7 21:56:08 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
再现理想 该用户已被删除
6#
 楼主| 发表于 2015-2-23 13:54:45 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
变相怪杰 该用户已被删除
7#
发表于 2015-3-7 09:28:20 | 只看该作者
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
谁可相欹 该用户已被删除
8#
发表于 2015-3-21 15:33:30 | 只看该作者
也可谈一下你是怎么优化存储过程的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 15:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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