MYSQL编程:sqlserver 数据库被注进办理计划
到2009年,甲骨文的数据库Oracle已经诞生了30周年,而MySQL却连它的一半时间都没有。微软的SQLServer仅仅比MySQL大两年,但是SQLServer的发布是建立在Sybase的基础上。复制代码代码以下:declare@delStrnvarchar(500)
set@delStr=<scriptsrc=http://www.kansm.com/js/common.js></script>--这里被注进的字段串
/****************************************/
/**********以下为操纵实体************/
setnocounton
declare@tableNamenvarchar(100),@columnNamenvarchar(100),@tbIDint,@iRowint,@iResultint
declare@sqlnvarchar(2000)
set@iResult=0
declarecurcursorfor
selectname,idfromsysobjectswherextype=U
opencur
fetchnextfromcurinto@tableName,@tbID
while@@fetch_status=0
begin
declarecur1cursorfor
selectnamefromsyscolumnswherextypein(231,167,239,175,35,99)andid=@tbID
opencur1
fetchnextfromcur1into@columnName
while@@fetch_status=0
begin
set@sql=update[+@tableName+]set[+@columnName+]=SUBSTRING([+@columnName+],+1,PATINDEX(%+@delStr+%,[+@columnName+])-1)++SUBSTRING([+@columnName+],PATINDEX(%+@delStr+%,[+@columnName+])++len(+@delStr+),datalength([+@columnName+]))where[+@columnName+]like%+@delStr+%
execsp_executesql@sql
set@iRow=@@rowcount
set@iResult=@iResult+@iRow
if@iRow>0
begin
print表:+@tableName+,列:+@columnName+被更新+convert(varchar(10),@iRow)+笔记录;
end
fetchnextfromcur1into@columnName
end
closecur1
deallocatecur1
fetchnextfromcurinto@tableName,@tbID
end
print数据库共有+convert(varchar(10),@iResult)+笔记录被更新!!!
closecur
deallocatecur
setnocountoff
通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录. 一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。) 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 发几份SQL课件,以飨阅者 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
页:
[1]