-
sql分组后二次汇总(处理表重复记录查询和删除)的实现方法
--处理表重复记录(查询和删除)/******************************************************************************************************************************************************1、Num、Name相同的重复值记录,没有大小关系只保留一条2、Name相同,ID有大小关系时,保留大或小其中一个记录整理人:中国风(Roy)日期:2008.06...
数据库操作教程 2022-09-23 18:14:54 -
SqlServer中模糊查询对于特殊字符的处理方法
今天在处理sql查询的时候遇到了like查询不到的问题,于是对问题进行剖析问题:select*fromv_workflow_rt_task_circulatewhereNamelike'%[admin]请假申请[2017-02-13至2017-02-13]%'查询不到,但是在数据库中是存在在这一条数据的。修改后:select*fromv_workflow_rt_task_circulatewhereNamelike'%[[]admin]请假申请[[]2017-02-13至2017-02-13]%'对于模糊查询需要对于特殊字符的处理(下划线_,百分号%,方括号[,尖号^)对了以上的字符直接使用方括号包起来([])例如:[_]、[%]、[[]、[^]...
数据库操作教程 2022-09-23 18:14:14 -
SQLServer误设置maxservermemory的处理方法
昨天网上一网友说,由于他同事误将“maxservermemory”设置为10M后,SQLServer数据库登录不了,当时我简单测试了一下,今天有空就顺手将整个过程整理一下,记录在此。在SSMS的UI界面设置“maxservermemory”,即使你设置为10M大小,但是它会“悄悄”默认修改为128M,你用Profile跟踪或者设置后会发现,它偷偷“修改”了你的设置值(改为了128M),EXECsys.sp_configureN'maxservermemory(MB)',N'128'GORECONFIGUREWITHOVERRIDEGOConfigurationoption'maxservermemory(MB)'changedfrom4096to128.RuntheRECONFIGUREstatementtoinstall.如果你没有注意这些细节,或者不信这个事情,那么也可以用脚本测试一下,如下所示,它提示你这个值(10M)不是一个有效值...
数据库操作教程 2022-09-23 18:14:01 -
SqlServer中如何解决session阻塞问题
简介对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题。最近开始接触运维工作,所以自己总结一些方案便于不懂数据库的同事解决一些不太紧要的数据库问题...
数据库操作教程 2022-09-23 18:11:27 -
SQLServer并发处理存在就更新解决方案探讨
前言本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案。探讨存在就更新七种方案首先我们来创建测试表IFOBJECT_ID('Test')ISNOTNULLDROPTABLETestCREATETABLETest(Idint,Namenchar(100),[Counter]int,primarykey(Id),unique(Name));GO解决方案一(开启事务)我们统一创建存储过程通过来SQLQueryStress来测试并发情况,我们来看第一种情况...
数据库操作教程 2022-09-23 18:10:19 -
Mysql用户忘记密码及密码过期问题的处理方法
忘记密码:步骤一:现在找到MySQL的安装目录,改掉安装目录的my-default.ini名称为my.ini(D:Mysqlmysql-5.7.13-winx64);步骤二:在my.ini文件最后一行加上skip-grant-tables 并保存(这是去掉安全检查);步骤三:在服务中重启MySQL服务;步骤四:cmd命令进入Mysql安装bin目录下输入mysql-uroot-p,按回车;(这里是以账号root为例子)步骤五:会出现‘Enterpassword',再按下回车,此时进入mysql>;步骤六:输入命令‘usemysql'回车,再输入修改密码sql语句:updateusersetpassword=password("new_pass")whereuser="root";然后将my.ini文件中的skip-grant-tables去掉,然后重启mysql,就OK了。注意:如果是MySQL5.7.13版本,会报ERROR1054(42S22):Unknowncolumn‘password'in‘fieldlist'这样的error;这样我们将sql语句改为:upd...
数据库操作教程 2022-09-23 18:06:51 -
SQLServer常见问题及解决方法分享
写在前面 在QQ群,微信群,论坛中经常帮助使用SQLServer数据库的朋友解决问题,但是有一些最常见最基本的问题,每天都有人问,回答多了也不想再解答了,索性把这些问题整理一下,再有人问到直接发链接。 一时想法而写这篇文章,问题可能不全面,后续会一直更新...
数据库操作教程 2022-09-23 18:06:45 -
SQLServer中的SQL语句优化与效率问题
很多人不知道SQL语句在SQLSERVER中是如何执行的,他们担心自己所写的SQL语句会被SQLSERVER误解。比如:select*fromtable1wherename='zhangsan'andtID>10000和执行:select*fromtable1wheretID>10000andname='zhangsan'一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name='zhangsan'的,而后再根据限制条件条件tID>10000来提出查询结果...
数据库操作教程 2022-09-23 18:02:04 -
简析SQLServer数据库用视图来处理复杂的数据查询关系
SQLServer数据库用视图来处理复杂的数据查询关系是本文我们主要要介绍的内容,该内容是这样想到的:在辅助教务系统那块的时候,我做的一个页面是对单个老师和整个学院老师的工作量查询,这个操作设计到了三个本数据库中的表和一个不同数据库中的一个教师信息表,如果用普通的SQL语句是非常难实现的,由于我刚开始做的视频播放系统,数据库的表相对比较少,没有涉及到这么复杂的处理关系,刚开始感觉很难。后来想到用视图可以解决多个表的复杂关系,但是另外一张表是不同数据库的,是否依然能进行操作,经过测试之后,居然可以将不同数据库中的两张表进行建立视图关系,从而视图就是一个虚拟的表,我们将需要查询的不同数据库中的表或者相同数据库中的表,放到一起,然后选择需要的字段,重新建立一个新的虚表,然后这个视图就可以作为一个新的表,进行操作...
数据库操作教程 2022-09-23 17:59:56 -
MSSQLServer2014链接到MSSQLServer2000的解决方案及问题处理
开发与企业应用中,好几个版本SQLServer相互链接。分布式读取与存储,需要实现sp_addlinkedserver...
数据库操作教程 2022-09-23 17:58:56 -
sqlserver日志处理不当造成的隐患详解
事故背景:一大早还在路上,群里陆续有人反馈系统一直报错“Unknownerror258”,后来查询日志发现错误日志第一反应是不是数据库连接不够用了?导致超时?但是通过sql查询当时连接也只有40个左右,于是继续排查问题,发现dbserver机器这段时间磁盘io操作特别的高,很不正常,详见下图发现磁盘io问题,继续查看sqlserver日志,发现原因:“Autogrowoffile‘xxxx_log'indatabase‘xxxx'wascancelledbyuserortimedoutafter3398milliseconds. UseALTERDATABASEtosetasmallerFILEGROWTHvalueforthisfileortoexplicitlysetanewfilesize.”发现这种问题因为log日志文件太大了一直没有压缩过,并且创建数据库的时候默认选择了10%的增量来扩大log增量文件,这样日志文件的10%会越来越大从而产生超时高io操作解决方案:1、定期清理log文件,防止log文件越来越大USE[master]GOALTERDATABASE数据库...
数据库操作教程 2022-09-23 17:58:05 -
sqlserver2012附加数据库问题解决方法
SQLServer错误5120:先用widows用户登录附加再分离重新用sa附加就行了不行的话,绝招:你先用SQLServer创建一个新的数据库...
数据库操作教程 2022-09-23 17:57:35