-
SQL重复记录问题的处理方法小结
1、查找重复记录①如果只是不想在查询结果中存在重复记录,可以加Distinctselectdistinct*fromTestTable②如果是想查询重复的记录及其数量selectUserID,UserName,count(*)as'记录数'fromTestTableGroupbyUserID,UserNamehavingcount(*)>1③ID不重复,但是字段重复的记录只显示一条select*fromTestTablewhereUserIDin(selectmax(UserID)asUserIDfromTestTablegroupbyUserName,Sex,Place)2、删除重复记录①一种思路是利用临时表,把查询到的无重复记录填充到临时表,再把临时表的记录填充回原始表selectdistinct*into#TempfromTestTabledroptableTestTableselect*intoTestTablefrom#Tempdroptable#Temp②删除ID不重复,但是字段重复的记录(就是按字段查询出相同字段记录中最大的ID,然后保留此记录,删除其他记录).(g...
数据库操作教程 2022-09-23 20:17:42 -
sqlupdate触发器可获得被update的行的信息
复制代码代码如下:createtriggerTgNameontbforupdateasifupdate(recommend)beginupdatetbsetcommenddate=(getdate())fromtbinnerjoininsertedontb.vlistid=Inserted.vlistidendrecommend表示被更新的字段.关键在于Inserted表触发器语句中使用了两种特殊的表:deleted表和inserted表。Deleted表用于存储DELETE和UPDATE语句所影响的行的复本...
数据库操作教程 2022-09-23 20:15:15 -
mssql数据库系统崩溃后的一般处理步骤与方法
mssql数据库系统崩溃后的一般处理步骤 情况描述:SQL Server 2000崩溃,重新安装数据库。有以下准备:1, 三个系统库(master,msdb,model)的完全备份:2 两个用户数据库(user01,user02)的备份(周日的完全备份+除周日外每天的差异备份):三个系统数据库是早期备份的,之间没有更新过帐号信息,没有增减过作业等等...
数据库操作教程 2022-09-23 20:13:46 -
显示SqlServer中所有表中的信息
显示某个SqlServer某个数据库中所有表或视图的信息sqlserver2000与2005不同差别在于红色字部分以下语句为获取所有表信息,替换绿色黑体字"U"为"V"为获取所有视图信息。SqlServer2000版本SELECTSysobjects.nameASTABLE_NAME,syscolumns.Id,syscolumns.nameASCOLUMN_NAME,systypes.nameASDATA_TYPE,syscolumns.lengthasCHARACTER_MAXIMUM_LENGTH,sysproperties.[value]ASCOLUMN_DESCRIPTION, syscomments.textasCOLUMN_DEFAULT,syscolumns.isnullableasIS_NULLABLEFROMsyscolumnsINNERJOINsystypes ONsyscolumns.xtype=systypes.xtype LEFTJOINsysobjectsONsyscolumns...
数据库操作教程 2022-09-23 20:13:07 -
SQLServer中使用扩展事件获取Session级别的等待信息及SQLServer2016中Session级别等待信息的增强
什么是等待简单说明一下什么是等待:当应用程序对SQLServer发起一个Session请求的时候,这个Session请求在数据库中执行的过程中会申请其所需要的资源,比如可能会申请内存资源,表上的锁资源,物理IO资源,网络资源等等,如果当前Session运行过程中需要申请的某些资源无法立即得到满足,就会产生等待。SQLServer会以不用的方式来展现这个等待信息,比活动Session的等待信息,实例级的等待信息等等...
数据库操作教程 2022-09-23 18:23:47 -
SQLServer实现用触发器捕获DML操作的会话信息【实例】
需求背景上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因;文档缺少;以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作。现在他们想找出有哪些服务器,哪些应用程序会对这个表进行INSERT、UPDATE操作...
数据库操作教程 2022-09-23 18:23:24 -
SQLServer性能调优之查询从20秒至2秒的处理方法
一、需求需求很简单,就是需要查询一个报表,只有1个表,数据量大约60万左右,但是中间有些逻辑。先说明一下服务器配置情况:1核CPU、2GB内存、机械硬盘、Sqlserver2008R2、WindowsServer2008R2SP1和阿里云的服务器,简单说就是阿里云最差的服务器...
数据库操作教程 2022-09-23 18:22:41 -
SQLServer异常代码处理的深入讲解
前言SQLServer使用TRY...CATCH结构实现TSQL语句的错误处理,TRY命令负责监控语句执行的情况,如果有TSQL语句发生异常,并且严重级别(SeverityLevel)大于10,并且小于20,那么CATCH命令会捕获到异常的错误。BEGINTRY{sql_statement|statement_block}ENDTRYBEGINCATCH[{sql_statement|statement_block}]ENDCATCH数据库开发工程师需要把一条或多条语句写入到TRY代码块中,如果TRY代码块中的代码在执行过程中发生错误,那么在错误发生的点之后的代码不再执行,程序的控制权转移到CATCH代码块块中...
数据库操作教程 2022-09-23 18:22:33 -
sqlserver分页查询处理方法小结
sqlserver2008不支持关键字limit,所以它的分页sql查询语句将不能用MySQL的方式进行,幸好sqlserver2008提供了top,rownumber等关键字,这样就能通过这几个关键字实现分页。下面是本人在网上查阅到的几种查询脚本的写法:几种sqlserver2008高效分页sql查询语句top方案:sqlcode:selecttop10*fromtable1whereidnotin(selecttop开始的位置idfromtable1)max:sqlcode:selecttop10*fromtable1whereid>(selectmax(id)from(selecttop开始位置idfromtable1orderbyid)tt)row:sqlcode:select*from(selectrow_number()over(orderbytempcolumn)temprownumber,*from(selecttop开始位置+10tempcolumn=0,*fromtable1)t)ttwheretemprownumber>开始位置3种分页方式,分别是ma...
数据库操作教程 2022-09-23 18:19:19 -
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