-
SQLServer简单模式下误删除堆表记录恢复方法(绕过页眉校验)
首先,我需要强调下,这篇主旨是揭示堆表的删除记录找回的原理,我所考虑的方面并不适用于每个人的每种情况,望大家见谅~很多朋友认为数据库在简单模式下,堆表误删除一条记录,是无法找回的,因为没有日志记录。其实不然,某种意义上是可以找回的,因为堆表在删除记录时,只更改了行偏移,实际数据没有被物理删除,所以利用这点,测试了下恢复数据,果然成功了,但是还有点问题没有研究出结果:如果不关闭页面校验,除了更改偏移量,删除数据时还需要更改页眉,这点还没时间去琢磨,所以恢复数据时还要能推断出页眉的16进制对应关系,有兴趣的朋友可以分享下经验给我...
数据库操作教程 2022-09-23 17:15:45 -
where条件顺序不同、性能不同示例探讨
昨天在书上看到SQL语句优化时,where条件顺序不同,性能不同,这个建议在Oracle11G版本还合适吗?方式1优于方式2?方式1:复制代码代码如下:selecta.*fromstudentss,classcwheres.id=c.ids.id='xxxxxxxx'方式2:复制代码代码如下:selecta.*fromstudentss,classcwheres.id='xxxxxxxx's.id=c.id10g中测试结果证明是一样的。MicrosoftWindows[版本5.2.3790](C)版权所有1985-2003MicrosoftCorp.C:DocumentsandSettingsAdministrator>sqlplus/assysdbaSQL*Plus:Release10.2.0.1.0-Productionon星期六5月1117:48:552013Copyright(c)1982,2005,Oracle.Allrightsreserved.连接到:OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Produc...
数据库操作教程 2022-09-23 17:14:23 -
sqlserver多表查询不同数据库服务器上的表
第一种方法:复制代码代码如下:/*创建链接服务器*/execsp_addlinkedserver'srv_lnk','','sqloledb','条码数据库IP地址'execsp_addlinkedsrvlogin'srv_lnk','false',null,'用户名','密码'go/*查询示例*/SELECTA.ListCodeFROMsrv_lnk...
数据库操作教程 2022-09-23 17:13:56 -
一个简单的SQL行列转换语句
一个简单的SQL行列转换Author:eaglet在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表部门编号部门名称合计正式员工临时员工辞退员工1A3020101这种问题咋一看摸不着头绪,不过把思路理顺后再看,本质就是一个行列转换的问题。下面我结合这个简单的例子来实现行列转换...
数据库操作教程 2022-09-23 16:56:59 -
SQL小技巧又快又简单的得到你的数据库每个表的记录数
但是如何得到某个数据库所有的表的记录数,你要是用上面的方法估计得累死了。呵呵下面提供如何借用sysindexes和sysobjects表来得到某个数据库每个表记录数的方法:先给出SQLServer2000版本的:复制代码代码如下:SELECTo.NAME,i.rowcntFROMsysindexesASiINNERJOINsysobjectsASoONi.id=o.idWHEREi.indid<2ANDOBJECTPROPERTY(o.id,'IsMSShipped')=0ORDERBYo.NAMESQLServer2005/8版本的SQL语句:复制代码代码如下:SELECTo.name,ddps.row_countFROMsys.indexesASiINNERJOINsys.objectsASoONi.OBJECT_ID=o.OBJECT_IDINNERJOINsys.dm_db_partition_statsASddpsONi.OBJECT_ID=ddps.OBJECT_IDANDi.index_id=ddps.index_idWHEREi.index_id<2ANDo...
数据库操作教程 2022-09-23 16:55:08 -
根据多条件查询临时表想得到不同结果集的方法
当我写下如下sql语句时,我得到了输入@c参数时想得到的结果集。select*[email protected](selectidfromtbwheref=@c)但如果有@a,@b,@c,而它们分别想从@tb中得到不同的结果集,例如复制代码代码如下:if@aisnotnullbegin--得到@a想得到的endif@bisnotnullbegin--得到@b想得到的endif@cisnotnullbegin--得到@c想得到的end这样做好像没什么问题,但如果@a和@b是一起的,甚至是@a,@b,@c,@d,@e,@f等等N多种条件组合,这样就不好办了...
数据库操作教程 2022-09-23 16:53:56 -
几个简单的基本的sql语句
说明:几个简单的基本的sql语句 选择:select*fromtable1where范围 插入:insertintotable1(field1,field2)values(value1,value2) 删除:deletefromtable1where范围 更新:updatetable1setfield1=value1where范围 查找:select*fromtable1wherefield1like'%value1%'---like的语法很精妙,查资料! 排序:select*fromtable1orderbyfield1,field2[desc] 总数:selectcount*astotalcountfromtable1 求和:selectsum(field1)assumvaluefromtable1 平均:selectavg(field1)asavgvaluefromtable1 最大:selectmax(field1)asmaxvaluefromtable1 最小:selectmin(field1)asminvaluefromtable1...
数据库操作教程 2022-09-23 16:52:50 -
SqlServer中存储过程中输入和输出参数(简单实例一看就懂)
[sql]--===================【创建存储过程】=====================USE[Message]GO/******Object:StoredProcedure[dbo].[读取外部数据库查询]ScriptDate:10/24/201205:39:16******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================Working没有变1,错误码没有测试,计划时间测试,企业名称createPROCEDURE[dbo]...
数据库操作教程 2022-09-23 16:49:55 -
SQL中遇到多条相同内容只取一条的最简单实现方法
SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别,这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项。如下:表timeand针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种1、selecttime,max(total)astotal,namefromtimeandgroupbytime;//取记录中total最大的值或selecttime,min(total)astotal,namefromtimeandgroupbytime;//取记录中total最小的值上述两种方案都有个缺点,就是无法区分name字段的内容,所以一般用于只有两条字段或其他字段内容完全一致的情况2、select*fromtimeandasawherenotexists(select1fromtimeandwherea.time=timeanda.total<total);此中方案排除了方案1中name字段不准确的问题,取的是total最大的值上面的例子中是只有一个字段不相同,假如有两个字段出现...
数据库操作教程 2022-09-23 16:43:55 -
sqlserver建表时设置ID字段自增的简单方法
打开要设置的数据库表,点击要设置的字段,比如id,这时下方会出现id的列属性表列属性中,通过设置“标识规范”的属性可以设置字段自增,从下图上看,“是标识”的值是否,说明id还不是自增字段能够设置ID字段自增的字段必须是可自增的,比如int,bigint类型,而varchar类型是不可自增的。比如查看name的列属性时,可以看到“是标识”是否且不可更改...
数据库操作教程 2022-09-23 16:43:18 -
SQL语句中不同的连接JOIN及join的用法
为了从两个表中获取数据,我们有时会用JOIN将两个表连接起来。通常有以下几种连接方式:JOIN or INNERJOIN(内连接):这两个是相同的,要求两边表同时有对应的数据,返回行,任何一边缺失数据就不显示...
数据库操作教程 2022-09-23 16:42:45 -
卢伟冰问年轻人为什么不换手机了,网友:没看到那么多人买苹果?
前段时间,在热搜上一直有个问题在翻来覆去,那就是年轻人为什么不换手机了?连央视都下场展开了讨论。这两年的确手机市场变得非常萧条,各大厂商新机销量很尴尬,出货量暴降,高通和联发科两大芯片厂商也在砍单...
手机互联 2022-09-21 07:21:35