仓酷云
标题:
MSSQL教程之有用的存储历程之二
[打印本页]
作者:
冷月葬花魂
时间:
2015-1-16 22:27
标题:
MSSQL教程之有用的存储历程之二
MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。存储历程有用的存储历程之二
笔者事情的公司接纳的是SQLServer数据库,天天都要处置大批的数据,因为笔者进公司的工夫对照晚,公司现有的年夜部分的程序都是之前的程序员留下的,由于他们没有相干的文档,笔者关于背景数据库的良多表的布局和数据都不甚懂得,给一样平常的保护形成了很年夜的贫苦。
在对背景数据库举行研讨的过程当中,我必要失掉数据库的某些相干信息,好比,公司的数据库中有几个表寄存笔者的团体材料,像人事表、人为表、部门表等等,但详细是哪些表,就不是很分明了,假如要一个一个表地找,大概天亮了也找不完,以是我决意做一个通用的存储历程,能对以后数据库一切字符型字段举行遍历,找出准确婚配含有要查找字符串的表和字段,而且排列出来。好比,人事表的Name字段,人为表的Salary_Name字段,部门表的Employe_Name字段都有笔者的名字,我但愿能把这些找出来。存储历程以下:
IFEXISTS(SELECTnameFROMsysobjects
WHEREname=searchnameANDtype=P)
DROPPROCEDUREsearchname
Go
createproceduresearchname@snamevarchar(10)
As
begin
createtable#TableList(
tablenamechar(200),
colnamechar(200)
)
declare@tablevarchar(200)
declare@colvarchar(200)
setnocounton
declarecurTabscrollcursorforselectnamefromsysobjectswherextype=u
opencurTab
fetchnextfromcurTabinto@table
while@@FETCH_STATUS=0
begin
declarecurColscrollcursorforselectnamefromsyscolumnswhere(xtype=175orxtype=167)and(idin(selectidfromsysobjectswherename=@table))
opencurCol
fetchnextfromcurColinto@col
while@@FETCH_STATUS=0
begin
execute(insertinto#TableListselect+@table+,+@col+from+@table+where+@col+=+@sname+)
fetchnextfromcurColinto@col
end
closecurCol
deallocatecurCol
fetchnextfromcurTabinto@table
end
closecurTab
deallocatecurTab
setnocountoff
selectdistinct*from#TableList
droptable#tablelist
end
挪用很复杂,如想找笔者的名字,挪用SearchName‘forgot2000’便可,查找速率视乎以后数据库的巨细而定。但愿这个存储历程能对人人有所匡助吧。自己E-mail:coolforgot@sina.com,QQ:33563255,但愿能跟人人配合交换,感谢!
本存储历程在SQLServer7.0/2000下经由过程。
如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如“0/1”或“Y/N”等值,就没有必要为它创建一个索引。
作者:
透明
时间:
2015-1-24 16:26
我们学到了什么?思考问题的时候从表的角度来思考问
作者:
再现理想
时间:
2015-2-2 10:48
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
作者:
再见西城
时间:
2015-2-7 18:14
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
作者:
变相怪杰
时间:
2015-2-22 22:01
无法深入到数据库系统层面去了解和探究
作者:
飘飘悠悠
时间:
2015-3-7 03:39
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
作者:
老尸
时间:
2015-3-14 10:51
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
作者:
灵魂腐蚀
时间:
2015-3-21 04:37
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2