摘要:环境:MSSQL2005,在Read Committed级别语句A:begin tranUpdate Table Set f1='xxx' where f2='ttt' --更新一行或多行--commit; //注意为了看到效果这里把commit注释了语句A影响的行集合为B该语句造成的影响1.该语句会阻塞,查询结果集合含有任意B集合中的行的select 语句2.该语句会阻塞,对该表其它行(B集合以外)进行Update操作的语句语句B:Update Table Set f4='xxxx' where f3='xxx' ,注意 这里的
阅读全文
摘要:Set Statistics io on|offselect * from kb_performance_tracewhere duration>1000
阅读全文
摘要:说明相信多级分类在任何一个信息系统中都会用到,网上也能找到很多版本,下面这个是基于MSSQL存储过程版的,手上还有VB跟C#版的,不过这几年数据库一直用MSSQL,编程语言却从VBScript到C#又到PB, 搞到现在这套分类代码分别用VB、C#、PB实现了一遍,浪费了不少时间,NND神马多数据库啊!!!哥被忽悠了。分类采用前缀编码的方式,编码使用字符串类型的,当然也有使用二进制实现的牛人^_^.表结构说明(表Category,ClassId,ClassName,Code 为分类相关字段,DataNum,Info等是根据具体情况额外增减)存储过程--**********************
阅读全文
摘要:SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06SELECT CONVERT(varchar(100), G
阅读全文
摘要:select syscolumns.name as ColName ,systypes.name as ColTypeName , syscolumns.length, sys.extended_properties.value as Mark ,syscolumns.isnullable as AllowNull ,IsPK = Case when exists ( select 1 from sysobjects inner join sysin...
阅读全文
摘要:整了2个小时:--列出存在的线束with WiringHarness(PartNo,CarType,PartName,Setting)as( select tp.PartNo,tp.CarType,pp.p_setting Setting,pp.p_partname PartName from ( select p_partno PartNo,p_yw carType from p_partno group by p_partno,p_yw Union select partno PartNo, p_yw carType from inticket where p_bs ...
阅读全文
摘要:数据库索引一般使用B数结构聚集索引:因为实际数据的排列顺跟索引的顺序是一样了(数据页内数据连续并按序排列)因此在进行 Field >xx And Field<xx2 这样的范围检索时,可以根据前后两值,将多个数据页一起读出比非聚集索引在数据读取IO上要经济很多,范围检索出来的数据是连续的数据段,数据相对非聚集索引比较集中。非聚集索引:复合索引:根据索引建立的界面,以及单字段索引的结构基本可以推测出复合索引的结构应该是索引排列时先按State ASC,EndTime DESC,EmployeId DESC进行,因此对where 包含State的将有最佳性能一些参考资料http://w
阅读全文
摘要:Pivot用来生成交差透视报表数据集,也就是所谓的行转列,就是将原来某个字段的全部取值转成列,然后根据一定的分组条件,对某个组并且取值跟该列吻合的数据做汇总统计(平均,求合,计数等),网上都说用pivot比case更简洁了,但是个人觉的理解起来更费劲了,不过从查询分析器中可看到Pivot本质还是case方式实现的比方如下一个查询:Declare @bTime datetime,@eTime dateTimeSet @bTime='2011-4-1'Set @eTime='2012-5-1'--这里的字段是分组字段跟行转列后的列--这里的字段取值是,分组字段值,行
阅读全文
摘要:一直以为实现一个类型Windows的任务计划的数据库设计(计划调度部分不考虑具体的任务步骤执行),最近认真的看了下每个配置才发现其实也不难,关键是搞清楚不管任务计划怎么个配置(按天,按周,按月),对任务调度进程来说只要知道当前时间点应该执行那些任务就好了,即任务调度进程发现某一任务的“下次执行时间”小于等于当前时间时,则执行之,并且将任务的上次执行时间更新为当前时间,并且根据任务调度配置计算出下次任务的执行时间并更新任务记录。数据库表结构,一次性任务不需要具体的配置信息表,通过[任务调度].[调度类型]来区别具体的调度规则规则1.一个任务会有多个调度规则,下一执行时间是计算一遍所有调度规则后,
阅读全文
摘要:分类是无限级的产品跟分类的关系是多对多需求:查询一组分类下的全部产品,注意给定的分类编号列表中的分类,可能包括下一级分类Select distinctP.ProductId,p.Name From Product pleft join ProductTradeClassMap cmapon p.ProductId=cmap.ProductIdwhere P.IsDeleted=0 And cmap...
阅读全文
摘要:需求: 广告位表 P(编号,名称,目录,规格) 广告位有三种状态,空闲,试用,已售 一个广告位只能有一条当前有效销售记录(ETime>Now),不能在S表中添加开始时间不是当前时间使用记录,当然不能把以后的时间提前买给别的用户(预售) 状态转换 空闲--(启用)-->试用|已售 试用--(转正)-->已售 试用|已售--(中止)-->空闲 试用|已售---(调整)-->...
阅读全文
摘要:在MSSQL2000,2005测试参考如下语句:---------------------------------Select p.*,s.* From Place p Left Join PlaceSale sON p.PlaceId=s.PlaceId根据查询分析器显示,以上语句将以Left Join 的形式执行,Place将做为外表而当家了 s.Price<100 后,以上查询将以in...
阅读全文
摘要:有产品表Product(ProductId,Name,Username,AddTime...) 留言表 Agency(AgencyId, ProductId, TargetUsername,IsRead...)其中Agency.TargetUsername与Product.Username指这个产品的发布用户(以及这条留言的目标用户--不是指发留言的人),现在要打印某一指定用户的如下列表:产品名称...
阅读全文
摘要:'=============================各种分页存储过程谁好谁坏,其实没有绝对,而各类存储过程快慢表现的差别,其实质是查询过程中能否有效果利用索引的差别,尤其是聚集索引的利用'=============================一个新闻模块,需要专题功能, 文章与专题是多对多关系,表数据结构如果下:文章表:Article(Id,ClassId,Title....)专题表:...
阅读全文
摘要:原来文地址:http://blog.csdn.net/emili/archive/2008/03/17/2192081.aspx ------------------------大概记录下先,有时间再整理,最后优化的代码如下:表结构猜测FACT(用户号,操作时间,动作)FACT应该是跟踪用户操作的一张表,现在需要根据这张表记录的数据来统计,给定时间(今天)一共有多少个用户活动过(上线过)以及这些用...
阅读全文
摘要:有一些程序,尤其是asp程序,对提交参数的验证不严格导致SQL注入漏洞的存在,通常情况下的过滤都会替换单引号 ['],因此很多注入方式就采用将SQL 语句进行Unicode编码(16进制)后再使用Cast还原,然后采用Exec(@SQL)这样动态方式执行,MSSQL里面很多输入参数是字符串类型的函数同时支持字符串的Unicode编码输入.如:IS_SRVROLEMEMBER(0x730079007...
阅读全文
摘要:打工作开始(2004年下半年),Asp能见到的两个数据库连接就是driver={SQL Server};或者Provider = Sqloledb;,它们都是用来连接MSSQL数据库的,一直没搞清楚它们的区别,反正程序中数据访问出问题,在排除一些常规因素后,把driver={SQL Server} 改成 Provider=SQLOLEDB 问题就奇迹般的解决了(也有可能是把后者改成前者,不过记忆里...
阅读全文
摘要:公司站点新增加了个功能,需要对原来用户表扩展几个新字段,为了避免修改老的代码,采用加入新表的方式(建立一张ext_User(Username,UserId[pk],AccountsType..)表),原用户表sures(suid[pk],suname,aaaflag[vip用户int],advUser[高级用户bit]) ext_user.AccountsType 取0,1,9分别表示普通用...
阅读全文
摘要:问题 有3万张选票,每张选票上有32个选择,每人必需在32个选择中选20个. 表设计: Vote(Id,Editor,AddTime)--选票主表, VoteDetail(Id,VoteId,OptionId)--选票细表 --------------------------------------- 基本上一个简单的计票程序就这样了,不过后来又有了个新...
阅读全文