-
sqlserver三种分页方式性能比较[图文]
Liwu_Items表,CreateTime列建立聚集索引第一种,sqlserver2005特有的分页语法复制代码代码如下:declare@pageintdeclare@pagesizeintset@page=2set@pagesize=12SETSTATISTICSIOonSELECTa.*FROM(SELECTROW_NUMBER()OVER(ORDERBYb.CreateTimeDESC)AS[ROW_NUMBER],b.*FROM[dbo].[Liwu_Items]ASb)ASaWHEREa.[ROW_NUMBER]BETWEEN@pagesize+1AND(@page*@pagesize)ORDERBYa.[ROW_NUMBER]结果:(12行受影响)表'Liwu_Items'。扫描计数1,逻辑读取7次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次...
数据库操作教程 2022-09-23 20:38:45 -
sqlserver另类非递归的无限级分类(存储过程版)
下面是我统计的几种方案:第一种方案(递归式):简单的表结构为:CategoryIDint(4),CategoryNamenvarchar(50),ParentIDint(4),Depthint(4)这样根据ParentID一级级的运用递归找他的上级目录。还有可以为了方便添加CategoryLeft,CategoryRight保存他的上级目录或下级目录第二种方案:设置一个varchar类型的CategoryPath字段来保存目录的完整路径,将父目录id用符号分隔开来...
数据库操作教程 2022-09-23 20:38:41 -
数据库备份SQLServer的备份和灾难恢复
各大服务器硬件厂商(IBM,HP等)提供有很好的数据保护策略(硬件或软件).如大家熟知的RAID磁盘阵列(RedundantArrayofIndependentDisks)就是很好的数据保护方法...
数据库操作教程 2022-09-23 20:38:40 -
SQL学习笔记八索引,表连接,子查询,ROW_NUMBER
索引经常要查询的语句,则给它建一个索引表连接selectT_OdersasojoinT_CustomersasCono.CustomerId=c...
数据库操作教程 2022-09-23 20:38:34 -
SQLserver查询数据类型为ntext是空或NULL值的方法
复制代码代码如下:--为空的值textntextselect*fromlf_newsNg_utfwheredatalength(newsContentE)=0ordatalength(newsContentE)isnull...
数据库操作教程 2022-09-23 20:38:31 -
SQLSERVERPagerstoreprocedure分页存储过程
复制代码代码如下:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDURE[dbo].[Pagination]@Pageint=1,--当前页码@PageSizeint=10,--每页记录条数(页面大小)@Tablenvarchar(500),--表名或视图名,甚至可以是嵌套SQL:(Select*FromTabWhereID>1000)Tab@Fieldnvarchar(800)='*',--返回记录集字段名,","隔开,默认是"*"@OrderBynvarchar(100)='IDASC',--排序规则@Filternvarchar(500),--过滤条件@MaxPagesmallintoutput,--执行结果-1error,0false,maxpagetrue@TotalRowintoutput,--记录总数/*2007-07-1222:11:00update*/@Descriptvarchar(100)output--结果描述ASBEGIN--====================================...
数据库操作教程 2022-09-23 20:38:28 -
sqlserver批量删除存储过程和批量修改存储过程的语句
修改:复制代码代码如下:declareproccurcursorforselect[name]fromsysobjectswherenamelike'Foods_%'declare@procnamevarchar(100)declare@tempvarchar(100)openproccurfetchnextfromproccurinto@procnamewhile(@@FETCH_STATUS=0)beginset@temp='kcb_'+@procnameEXECSP_RENAME@procname,@tempprint(@procname+'已被删除')fetchnextfromproccurinto@procnameendcloseproccurdeallocateproccurdeclareproccurcursorforselect[name]fromsysobjectswherenamelike'kcb%'declare@procnamevarchar(100)declare@tempvarchar(100)declare@temp2varchar(100)declare...
数据库操作教程 2022-09-23 20:38:24 -
SQLServer聚集索引和非聚集索引的区别分析
聚集索引:物理存储按照索引排序非聚集索引:物理存储不按照索引排序优势与缺点聚集索引:插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入)查询数据比非聚集数据的速度快汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部...
数据库操作教程 2022-09-23 20:38:20 -
sqlserver数据库中的表、字段sql语句
1.系统表sysobjects在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。列名数据类型说明namesysname对象名idint对象标识号xtypechar(2)对象类型...
数据库操作教程 2022-09-23 20:38:19 -
未公开的SQLServer口令的加密函数
如果对MSSQL的用户信息有兴趣的,可能会发现master.dbo.sysxlogins里面存放着用户的口令,可是呢,password字段如果不是null就是一堆看不懂的binary,这个口令是怎么加密的呢? 其实只要仔细看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代码,真是不错。 让我们来看看它是怎么做的,注意这一行select @passwd = pwdencrypt(@passwd),这个时后@passwd就被加密了,让我们也来试一下 DECLARE @ClearPWD varchar(255) DECLARE @EncryptedPWD varbinary(255) SELECT @ClearPWD = 'test' SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD)) SELECT&nbs...
数据库操作教程 2022-09-23 20:38:14 -
System表空间不足的报警问题浅析
废话不多说了,具体代码如下所示:--SYSTEM表空间不足的报警登录之后,查询,发现是sys.aud$占的地方太多。SQL>selectowner,segment_name,segment_type,sum(bytes)/1024/1024space_mfromdba_segmentswheretablespace_name='SYSTEM'groupbyowner,segment_name,segment_typehavingsum(bytes)/1024/1024>=20orderbyspace_mdesc;4567OWNERSEGMENT_NAMESEGMENT_TYPESPACE_M----------------------------------------------SYSAUD$TABLE4480SYSIDL_UB1$TABLE272SYSSOURCE$TABLE72SYSIDL_UB2$TABLE32SYSC_OBJ#_INTCOL#CLUSTER27SYSC_TOID_VERSION#CLUSTER246rowsselected.SQL>查看是哪个...
数据库操作教程 2022-09-23 20:38:07 -
SQLServer数据导入导出的几种方法小结
1.SQLServer导入导出向导,这种方式是最方便的.导入向导,微软提供了多种数据源驱动,包括SQLServerNativeCliant,OLEDBForOracle,FlatFileSource,Access,Excel,XML等,基本上可以满足系统开发的需求.同样导出向导也有同样多的目的源驱动,可以把数据导入到不同的目的源.对数据库管理人员来说这种方式简单容易操作,导入时SQLServer也会帮你建立相同结构的Table.2.用.NET的代码实现(比如有一个txt或是excel的档案,到读取到DB中)2.1最为常见的就是循环读取txt的内容,然后一条一条的塞入到Table中.这里不再赘述.2.2集合整体读取,使用OLEDB驱动.代码如下:复制代码代码如下:stringstrOLEDBConnect=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:1;ExtendedProperties='text;HDR=Yes;FMT=Delimited'";OleDbConnectionconn=newOleDbConnection(strOL...
数据库操作教程 2022-09-23 20:38:01