-
sqlnotin与notexists使用中的细微差别
上面两个简单的Sql,我们从表面理解,查询的最终结果应该是一样的,但实际结果却和我们想象的不一样第一条sql查询的结果有一条数据第二条sql查询的结果却为空 原因:notexists的子查询,对于子查询不返回行和子查询返回行的查询结果是有区别的这些细小的差别千万不要被我们所忽视,一旦项目庞大了,想跟踪到具体的错误所花费的时间也是可观的。尽量把这些不必要的错误扼杀在摇篮里...
数据库操作教程 2022-09-23 17:04:50 -
SQLSERVER收集语句运行的统计信息并进行分析
对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信息...
数据库操作教程 2022-09-23 17:04:47 -
Sql批量替换所有表中内容
复制代码代码如下:declare@tvarchar(255),@cvarchar(255)declaretable_cursorcursorforselecta.name,b...
数据库操作教程 2022-09-23 17:04:45 -
SQLServer高级内容之子查询和表链接概述及使用
1.子查询概念(1)就是在查询的where子句中的判断依据是另一个查询的结果,如此就构成了一个外部的查询和一个内部的查询,这个内部的查询就是自查询。(2)自查询的分类1)独立子查询->独立单值(标量)子查询(=)复制代码代码如下:SelecttestID,stuID,testBase,testBeyond,testProfromScorewherestuID=(selectstuIDfromStudentwherestuName='Kencery')->独立多值子查询(in)复制代码代码如下:SelecttestID,stuID,testBase,testBeyond,testProfromScorewherestuIDin(selectstuIDfromStudentwherestuName='Kencery')2)相关子查询(3)写子查询的注意事项1)子查询用一个圆括号阔气,有必要的时候需要为表取别名,使用“as名字”即可...
数据库操作教程 2022-09-23 17:04:40 -
SQLServer误区30日谈第2天DBCCCHECKDB会导致阻塞
误区#2:DBCCCHECKDB会引起阻塞,因为这个命令默认会加锁这是错误的! 在SQLServer7.0以及之前的版本中,DBCCCHECKDB命令的本质是C语言实现的一个不断嵌套循环的代码并对表加表锁(循环嵌套算法时间复杂度是嵌套次数的N次方,作为程序员的你懂得),这种方式并不和谐,并且….. 在SQLServer2000时代,一个叫SteveLindell的哥们(现在仍然在SQLServerTeam)使用分析事务日志的方法来检查数据库的一致性的方式重写了DBCCCHECKDB命令。DBCCCHECKDB会阻止截断日志...
数据库操作教程 2022-09-23 17:04:37 -
mssql高效的分页存储过程分享
最近在做一个几百万条数据的分页查询,研究了各种方案,在本机上用项目的实际数据库做测试,测试过程isvery痛苦,不堪回首ing。现在废话不多说,直接上结果,相信这也是大多数搜索答案的人最愿意看的方式...
数据库操作教程 2022-09-23 17:04:31 -
SqlServer扩展属性的介绍
SqlServer帮助中对扩展属性的描述是:TheExtendedPropertiespropertysetsorretrievesprovider-specificconnectioninformationthatcannotbeexplicitlydescribedthroughthepropertymechanism.对于扩展属性有如下操作:复制代码代码如下:execsp_addextendedpropertyN'MS_Description',N'字段描述',N'user',N'dbo',N'table',N'表名',N'column',N'字段名'GO例如:EXECsp_addextendedpropertyN'MS_Description',N'地址',N'user',dbo,N'table',复制代码代码如下:N'a',N'column',a_addGO--我的表是a,要给字段a_add加上字段描述:地址其他相关:删除:复制代码代码如下:EXECsp_dropextendedpropertyN'MS_Description',N'user',dbo,N'table',N'...
数据库操作教程 2022-09-23 17:04:27 -
SQL中JOIN和UNION区别、用法及示例介绍
1.JOIN和UNION区别join是两张表做交连后里面条件相同的部分记录产生一个记录集,union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集。JOIN用于按照ON条件联接两个表,主要有四种:INNERJOIN:内部联接两个表中的记录,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行...
数据库操作教程 2022-09-23 17:04:27 -
SQL的Join使用图解教程
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚...
数据库操作教程 2022-09-23 17:04:18 -
SQLServer误区30日谈第17天有关页校验和的误区
其实我之前已经有文章详细解释了页校验和:HowtotelliftheIOsubsystemiscausingcorruptions?误区#17:几个有关页校验和的误区坊间流传的基本是错误的 17a)页校验和(PageCheckSum)在从SQLServer2000或7.0升级上来之后自动开启 其实不是,从旧的实例升级上来的数据库不会自动开启页校验和,除非你显式使用ALTERDATABASEdatabasenameSETPAGE_VERIFYCHECKSUM进行开启。而在SQLServer2005或2008新建的数据库页校验和是默认开启的...
数据库操作教程 2022-09-23 17:04:11 -
SQL临时表递归查询子信息并返回记录的代码
复制代码代码如下:declare@Q_IDuniqueidentifierset@Q_ID=dbo.uf_GetParamValueByName(@Params,'@指标ID');declare@QAExp_IDchar(36)--指标属性公式IDset@QAExp_ID='3D2B8F3F-0B7E-46FD-9B33-050F846C2869'declare@temp_qidtable(QIDchar(36),ExpValuenvarchar(max))--临时表变量获得指标根IDdeclare@QIDtempchar(36),@expressnvarchar(4000)declare@kint=2--层次declare@patternnvarchar(2)='ID'--指标公式拆分字段declare@charidexint--指标对应的索引if(@OPType='根据指标ID查找公式所有子指标')begincreatetable#TempQuotaStruct--创建临时表#TmpStruct(QIDchar(36),--创建一个ID用来存储指标IDPIDchar(36),--用...
数据库操作教程 2022-09-23 17:04:04 -
SQLServer误区30日谈第22天资源调控器可以调控IO
误区#22:资源调控器可以调控IO错误 资源调控器无法调控IO,希望下一个版本的SQLServer支持调控IO,调控IO对于对于减少对于大表的scan操作带来的性能影响很有帮助。 下面列表中的功能资源调控器同样也无法完成:调控BufferPool的内存,内存调控器仅仅可以调控执行计划所占的内存,但对于BufferPool中缓存的数据页是无法调控的可以对多个实例进行当作一个逻辑实体进行资源调控...
数据库操作教程 2022-09-23 17:04:02