-
编写高质量代码改善C#程序——使用泛型集合代替非泛型集合(建议20)
软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类。不管是数组还是集合类,它们都有各自的优缺点...
数据库操作教程 2022-09-23 17:54:32 -
使用SqlServerCTE递归查询处理树、图和层次结构
CTE(CommonTableExpressions)是从SQLServer2005以后版本才有的。指定的临时命名结果集,这些结果集称为CTE...
数据库操作教程 2022-09-23 17:54:19 -
sqlserver创建临时表的使用说明
临时表产生:A:SELECTINTO和B:CREATETABLE+INSERTINTO1.A要比B快很多。但是A会锁定tempdb的SYSOBJECTS、SYSINDEXES、SYSCOLUMNS表,在多用户并发的时候,容易产生阻塞其他的进程...
数据库操作教程 2022-09-23 17:53:51 -
Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理==================DECLARE@A1VARCHAR(10),@A2VARCHAR(10),@A3INTDECLARECURSORYOUCURNAMEFORSELECTA1,A2,A3FROMYOUTABLENAMEOPENYOUCURNAMEfetchnextfromyoucurnameinto@a1,@a2,@a3while@@fetch_status<>-1beginupdate…set…-a3where………您要执行的操作写在这里fetchnextfromyoucurnameinto@a1,@a2,@a3endcloseyoucurnamedeallocateyoucurname—————————————在应用程序开发的时候,我们经常可能会遇到下面的应用,我们会通过查询数据表的记录集,循环每一条记录,通过每一条的记录集对另一张表进行数据进行操作,如插入与更新,我们现在假设有一个这样的业务:老师为所在班级的学生选课,选的课程如有哲学、马克思主义政治经济学、毛泽东思想...
数据库操作教程 2022-09-23 17:53:26 -
sql的临时表使用小结
1、创建方法:方法一:createtableTempTableName或select[字段1,字段2,...,]intoTempTableNamefromtable方法二:createtabletempdb.MyTempTable(Tidint)说明:(1)、临时表其实是放在数据库tempdb里的一个用户表;(2)、TempTableName必须带“#”,“#"可以是一个或者两个,以#(局部)或##(全局)开头的表,这种表在会话期间存在,会话结束则自动删除;(3)、如果创建时不以#或##开头,而用tempdb.TempTable来命名它,则该表可在数据库重启前一直存在。2、手动删除droptableTempTableName说明: DROP TABLE语句显式除去临时表,否则临时表将在退出其作用域时由系统自动除去: (1)、当存储过程完成时,将自动除去在存储过程中创建的本地临时表...
数据库操作教程 2022-09-23 17:51:10 -
SQL中distinct的用法(四种示例分析)
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的,所以浪费了我大量时间...
数据库操作教程 2022-09-23 17:49:35 -
SQLServer使用row_number分页的实现方法
本文为大家分享了SQLServer使用row_number分页的实现方法,供大家参考,具体内容如下1、首先是selectROW_NUMBER()over(orderbyidasc)as'rowNumber',*fromtable1生成带序号的集合2、再查询该集合的第1 到第5条数据select*from(selectROW_NUMBER()over(orderbyidasc)as'rowNumber',*fromtable1)astempwhererowNumberbetween1and5完整的Sql语句declare@pagesizeint;declare@pageindexint;set@pagesize=3set@pageindex=1;--第一页select*from(selectROW_NUMBER()over(orderbyidasc)as'rowNumber',*fromtable1)astempwhererowNumberbetween(((@pageindex-1)*@pagesize)+1)and(@pageindex*@pagesize)set@page...
数据库操作教程 2022-09-23 17:49:23 -
SQL中Merge用法详解
MERGE语句是SQL语句的一种。在SQLServer、Oracle数据库中可用,MySQL、PostgreSQL中不可用...
数据库操作教程 2022-09-23 17:49:19 -
SQLServer存储过程中事务的使用方法
本文为大家分享了SQLServer存储过程中事务的使用方法,具体代码如下createprocusp_Stock@GoodsIdint,@Numberint,@StockPricemoney,@SupplierIdint,@EmpIdint,@StockUnitvarchar(50),@StockDatedatetime,@TotalMoneymoney,@ActMoneymoney,@baseIdint,@Descriptionnvarchar(255)asdeclare@errorint=0--事务中操作的错误记录--开启事务begintransaction--实现进货信息的添加insertintoStockInfovalues(@GoodsId,@Number,@StockPrice,@SupplierId,@EmpId,@StockUnit,@StockDate,@TotalMoney,@ActMoney,DEFAULT,@Description,@baseId)set@error+=@@ERROR--记录有可能产生的错误号--获取当前进货信息的标识列--判断当前商品有没有进货记...
数据库操作教程 2022-09-23 17:49:02 -
SqlServer使用casewhen解决多条件模糊查询问题
我们在进行项目开发中,经常会遇到多条件模糊查询的需求。对此,我们常见的解决方案有两种:一是在程序端拼接SQL字符串,根据是否选择了某个条件,构造相应的SQL字符串;二是在数据库的存储过程中使用动态的SQL语句...
数据库操作教程 2022-09-23 17:47:05 -
SQLServer两种分页的存储过程使用介绍
由于现在很多的企业招聘的笔试都会让来招聘的写一个分页的存储过程,有的企业甚至要求应聘者用两种方式实现分页,如果没有在实际项目中使用过分页,那么很多的应聘者都会出现一定的问题,下面介绍两种分页的方法。一、以学生表为例,在数据库中有一个Student表,字段有StudentNo,,LoginPwd,StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel要求:查询学生的信息,每页显示5条记录二、第一种方式分页:利用子查询notin例如:第一页selecttop5*fromStudent第二页:查询前10条中不在前5条的记录,那么就是6-10,也就是第二页selecttop5*fromStudentwhereStudentNonotin(selecttop10StudentnofromStudent)同理可以得到第三页、、、、、、、这种方式相信大家都能明白,这种分页的存储过程写法就不多做介绍,重点介绍下面那种分页方法...
数据库操作教程 2022-09-23 17:46:34 -
SQLServer使用游标处理Tempdb究极竞争-DBA问题-程序员必知
SQLServertempdb分配竞争算是DBA老生常谈的问题了,几乎现在所有的DBA都知道多建几个文件来解决/缓解问题.但是深层次的的竞争依旧不可避免.这里给大家剖析下游标在tempdb中的特点使其在一定场景下替代临时表/表变量对象,解决深层次的tempdb竞争问题.在抛出这个不可避免的问题之前我们先简要看下什么是tempdb竞争.我们拿SQLServer创建一个临时表的过程来描述1在系统表中创建表的条目(系统数据页中)2分配一个IAM页并找到一个混合区在PFS页中标记3分配一个数据页(查看SGAM页,查看PFS页后并更新,更新IAM页)4表记录记录到系统表中从上述过程可以看出创建一个简单临时表需要查找,更新一系列的系统表/系统数据页,且当使用完删除临时表时上述操作逆向进行.索引相应的创建/销毁一旦大量并发,内部竞争也就产生了.虽然tempdb的缓存策略一定程度可以缓解相应创建过程的IAM,数据页分配,SqlServertempdb原理-缓存机制解析实践,但竞争依旧.可以看到SGAM,PFS等系统页是表创建过程的必经之路,他的分配竞争也就十分明显了.这也就是为什么采用多个数据文件,让...
数据库操作教程 2022-09-23 17:45:42