-
简单判断MSSQL数据库版本(2000或者2005)
最近的一次对mssql数据库迁移操作中发现一个有趣的事情,可以用一条语句判断MSSQL数据库版本(准确度不高):select*fromsys.servers如果返回如下信息,应该是2000数据库:消息208,级别16,状态1,第1行对象名'sys.servers'无效。反之返回类似如下的信息,则可能为2005数据库1www-hostSQLServerSQLNCLIwww-hostNULLNULLNULL0原因:sys.servers这个对象在2000中没有,在2005中有...
数据库操作教程 2022-09-23 17:21:02 -
SQLServer简单模式下误删除堆表记录恢复方法(绕过页眉校验)
首先,我需要强调下,这篇主旨是揭示堆表的删除记录找回的原理,我所考虑的方面并不适用于每个人的每种情况,望大家见谅~很多朋友认为数据库在简单模式下,堆表误删除一条记录,是无法找回的,因为没有日志记录。其实不然,某种意义上是可以找回的,因为堆表在删除记录时,只更改了行偏移,实际数据没有被物理删除,所以利用这点,测试了下恢复数据,果然成功了,但是还有点问题没有研究出结果:如果不关闭页面校验,除了更改偏移量,删除数据时还需要更改页眉,这点还没时间去琢磨,所以恢复数据时还要能推断出页眉的16进制对应关系,有兴趣的朋友可以分享下经验给我...
数据库操作教程 2022-09-23 17:15:45 -
将mater库中的系统存储过程批量生成*.sql文件通用且非常实用
大家都知道系统存储过程是无法用工具导出的(大家可以试试>任务>生成SQL脚本)因为系统存储过程一般是不让开发人员修改的。需要知识:1、xp_cmdshell命令的使用2、sp_MS_marksystemobject标记系统存储过程的方法3、dos命令,如type,>>等4、bcp命令的使用复制代码代码如下:usemastergoifOBJECT_ID('pr_procToSql')isnotnulldropprocpr_procToSqlgocreateprocpr_procToSql(@服务器名varchar(100),@用户名varchar(100),@密码varchar(100),@pathvarchar(200),@databasevarchar(200),@sysprocint='0'--是否标记为系统函数1:是,0:否,@proc_namevarchar(100)=''--默认是所有,可以模糊搜索,@savetypevarchar(200)='.sql'--默认保存为sql脚本)as/*版本:v1作者:达摩日期:2012-04-13功能:1将mast...
数据库操作教程 2022-09-23 17:13:58 -
一个简单的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语句
说明:几个简单的基本的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 -
数据库Leftjoin,RightJoin,InnerJoin的相关内容,非常实用
一.先看一些最简单的例子例子TableAaid adate1 a12 a23 a3TableBbidbdate1 b12 b24 b4两个表a,b相连接,要取出id相同的字段select*fromainnerjoinbona.aid=b.bid这是仅取出匹配的数据.此时的取出的是:1a1b12a2b2那么leftjoin指:select*fromaleftjoinbona.aid=b.bid首先取出a表中所有数据,然后再加上与a,b匹配的的数据此时的取出的是:1a1b12a2b23a3空字符同样的也有rightjoin指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据此时的取出的是:1a1b12a2b24空字符b4LEFTJOIN或LEFTOUTERJOIN。左向外联接的结果集包括LEFTOUT...
数据库操作教程 2022-09-23 16:41:25 -
微软CEO纳德拉:对动视暴雪收购案获准非常有信心
9月23日消息,美国当地时间周四,微软首席执行官萨蒂亚·纳德拉(SatyaNadella)表示,他相信该公司斥资690亿美元收购动视暴雪的交易能够获得监管机构的批准,尽管英国正在进行深入的监管调查。纳德拉当天在接受采访时表示:“当然,任何如此大规模的收购都需要接受审查,但我们非常有信心,这笔交易将得到监管机构的批准...
互联网 2022-09-23 07:44:15 -
数研所穆长春:数字人民币适用“占有即所有”规则,交付即发生所有权转移
21世纪经济报道记者边万莉北京报道“数字人民币是人民银行发行的数字形式的法定货币,具有价值特征。”9月15日,央行数字货币研究所所长穆长春在第十一届中国支付清算论坛发表主题演讲时,分享了对数字人民币价值特征一些法律问题的思考...
区块链 2022-09-15 15:57:29