博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年11月26日

摘要: SqlDataAdapter.Update批量数据更新 使用SqlDataAdapter.Update可以方便地对数据库进行快速、批量数据更新。我们最常用的多条数据更新方法是使用循环多次执行SQL语句或存储过程,这样虽然方便,但由于连接和数据传递要在服务器和客户端多次来往,大大增加了整个过程的时间,当数据越大时越明显!下面对SqlDataAdapter.Update作个简单的演示介绍吧。测试环境:SqlServer2008+VS2010+WinXP1.建立测试数据库和表CREATE DATABASE [TEST]GOUSE [Test]GOCREATE TABLE [Student]( [SN 阅读全文

posted @ 2011-11-26 00:40 moss_tan_jun 阅读(4975) 评论(0) 推荐(0) 编辑

摘要: BEGIN TRANSACTIONBEGIN TRY -- YOUR SQL COMMITEND TRY BEGIN CATCH ROLLBACKEND CATCH 以上代码是在SQL SERVER 2008 中执行的. 在使用了TRY CATCH之后, 只要出现异常就会跑CATCH里面回滚. 代码更清晰了更像我熟知的C#异常处理. 阅读全文

posted @ 2011-11-26 00:35 moss_tan_jun 阅读(441) 评论(0) 推荐(0) 编辑

摘要: 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 同样的,在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量…… 从游标对数据库的读取方式来说,不难看出游标为什么占用更多的资源,打个比方: 当你从ATM取钱的时候,是一次取1000效率更高呢,还是取10次100?既然游标这么“邪恶”,为什么还要学... 阅读全文

posted @ 2011-11-26 00:33 moss_tan_jun 阅读(270610) 评论(61) 推荐(111) 编辑

摘要: 语法格式:PATINDEX ( '%pattern%' , expression ) 返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算。pattern字符串在expression表达式里没找就返回0,对所有有效的文本和字符串就是有效的数据类型。描述一下此函数的具体用法:1. PATINDEX ( '%pattern%' , expression )'%pattern%'的用法类似于 like '%pattern%'的用法,也就是模糊查找其pattern字符串是否是expression找到,找 阅读全文

posted @ 2011-11-26 00:29 moss_tan_jun 阅读(61116) 评论(3) 推荐(8) 编辑

摘要: Select stuff("abcdef",2,3,"ghijk")go结果:aghijkefstuff的功能:删除指定长度的字符串并在指定的起始点插入另一组字符STUFF( character_expression ,start ,length ,character_expression ) character_expression :操作的字符,start:删除和插入的起始点,length:删除的长度,character_expression :要插入的字符----------------------------------------------- 阅读全文

posted @ 2011-11-26 00:25 moss_tan_jun 阅读(751) 评论(0) 推荐(0) 编辑

摘要: --提取数字IFOBJECT_ID('DBO.GET_NUMBER')ISNOTNULLDROPFUNCTIONDBO.GET_NUMBERGOCREATEFUNCTIONDBO.GET_NUMBER(@SVARCHAR(100))RETURNSVARCHAR(100)ASBEGINWHILEPATINDEX('%[^0-9]%',@S)>0BEGINset@s=stuff(@s,patindex('%[^0-9]%',@s),1,'')ENDRETURN@SENDGO--测试PRINTDBO.GET_NUMBER(' 阅读全文

posted @ 2011-11-26 00:24 moss_tan_jun 阅读(1037) 评论(0) 推荐(0) 编辑

摘要: 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面将从这三个方面分别进行总结:为了更直观地说明问题,所有实例中的SQL运行时间均经过测试,不超过1秒的均表示为(< 1秒)。---- 测试环境: 主机:HP LH II---- 主频:330MHZ---- 内存:1 阅读全文

posted @ 2011-11-26 00:18 moss_tan_jun 阅读(627) 评论(1) 推荐(1) 编辑

摘要: if not object_id('test_no_cx') is null drop table test_no_cxif not object_id('test_has_cx') is null drop table test_has_cx--创建一个不含索引的表test_no_cxcreate table test_no_cx(id int, name varchar(20), createtime datetime default(getdate()))--插入若干条记录(注意:这里故意打乱id的顺序)insert test_no_cx(id, name 阅读全文

posted @ 2011-11-26 00:08 moss_tan_jun 阅读(256) 评论(0) 推荐(0) 编辑