-
清空所有表中的数据的存储过程
复制代码代码如下:--*******************************************************--*清空所有表中的数据*--*撒哈拉大森林*--*2010-6-28*--*******************************************************ifexists(select*fromsysobjectswheretype='P'andname=N'P_DeleteAllData')dropprocedureP_DeleteAllDatagoCREATEPROCEDUREP_DeleteAllDataasEXECsp_MSForEachTable'ALTERTABLE?NOCHECKCONSTRAINTALL'--禁用约束EXECsp_MSForEachTable'ALTERTABLE?DISABLETRIGGERALL'--禁用触发器EXECsp_MSForEachTable'DELETEFROM?'--删除所有表中的数据EXECsp_MSForEachTable'ALTERTABLE?CHECKCONSTRAI...
数据库操作教程 2022-09-23 20:21:11 -
sqlserver中的自定义函数的方法小结
“自定义函数”是我们平常的说法,而“用户定义的函数”是SQLServer中书面的说法。SQLServer2000允许用户创建自定义函数,自定义函数可以有返回值...
数据库操作教程 2022-09-23 20:15:24 -
TRUNCATE快速删除表中的所有数据
备注与DELETE语句相比,TRUNCATETABLE具有以下优点:所用的事务日志空间较少。DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一个条目...
数据库操作教程 2022-09-23 20:14:43 -
显示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 -
SQL中的开窗函数详解可代替聚合函数使用
在没学习开窗函数之前,我们都知道,用了分组之后,查询字段就只能是分组字段和聚合的字段,这带来了极大的不方便,有时我们查询时需要分组,又需要查询不分组的字段,每次都要又到子查询,这样显得sql语句复杂难懂,给维护代码的人带来很大的痛苦,然而开窗函数出现了,曙光也来临了。如果要想更具体了解开窗函数,请看书《程序员的SQL金典》,开窗函数在mysql不能使用...
数据库操作教程 2022-09-23 18:25:37 -
SQLServer中的集合运算:UNION,EXCEPT和INTERSECT示例代码详解
SQLServer中的集合运算包括UNION(合并),EXCEPT(差集)和INTERSECT(相交)三种。集合运算的基本使用1.UNION(合并两个查询结果集,隐式DINSTINCT,删除重复行)--合并两个提取表/派生表(derivedtable),返回结果为:[a,b,c,d,e]SELECTFCFROM(VALUES('a'),('b'),('c'),('e'))Table1(FC)UNIONSELECTFCFROM(VALUES('a'),('b'),('c'),('d'))Table2(FC)2.UNIONALL(简单合并两个查询结果集,不删除重复行)--提取表/派生表(derivedtable)可以是多列,列名、顺序可以不同,但列数必须相同SELECT*FROM(VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('e','Elina'))Table1(FC,Name)UNIONALLSELECT*FROM(VALUES('a','Anna'),('b','Bob'),('c','Cassie'),('d','David'))Ta...
数据库操作教程 2022-09-23 18:25:20 -
SQLServer实现用触发器捕获DML操作的会话信息【实例】
需求背景上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因;文档缺少;以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作。现在他们想找出有哪些服务器,哪些应用程序会对这个表进行INSERT、UPDATE操作...
数据库操作教程 2022-09-23 18:23:24 -
SQL Server中的约束(constraints)详解
目录一、约束的分类二、约束命名三、主键约束1、在创建表的时候创建主键约束。2、在已存在的表上创建主键约束3、复合主键的创建四、外键约束4.1、创建表的时候创建外键4.2、在已存在的表中添加一个外键4.3、级联动作五、唯一约束主键和唯一约束的区别:六、CHECK约束七、DEFAULT约束7.1在创建表时定义DEFAULT约束:7.2在已存在的表上添加DEFAULT约束:八、禁用约束8.1、在创建约束时,忽略检查之前的不满足数据8.2、临时禁用已存在的约束九、规则和默认值(已淘汰)9.1、规则9.2、默认值9.3确定哪个表和数据类型使用给定的规则或默认值十、系统视图一、约束的分类在SQLServer中,有3种不同类型的约束...
数据库操作教程 2022-09-23 18:22:44 -
SQL Server中的文件和文件组介绍
文件和文件组简介在SQLServer中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQLServer通过管理逻辑上的文件组的方式来管理文件...
数据库操作教程 2022-09-23 18:22:36 -
SQL Server中的数据类型详解
目录哪些对象需要数据类型一、整数数据类型1、bit2、tinyint3、smallint4、int(integer)5、bigint二、浮点数据类型1、real:近似数值型2、float[(n)]:近似数值型3、decimal[p[s]]4、numeric[p[s]]5、smallMoney货币型6、money货币型三、字符数据类型1、char[(n)]2、nchar[(n)]3、varchar[(n|max)]4、nvarchar[(n|max)]5、text6、ntext四、日期和时间数据类型1、datetime:日期和時間(1753-1-1日到9999-12-31)2、dateTime2(n):高精度的datetime类型(0001-01-01到9999-12-31)3、smalldatetime :精确到分钟,日期和時間。(1900-01-01到2079-06-06)不推荐...
数据库操作教程 2022-09-23 18:22:15 -
sql中的where、groupby和having用法解析
废话不多说了,直接给大家贴代码了,具体代码如下所示:--sql中的where、groupby和having用法解析--如果要用到groupby一般用到的就是“每这个字”例如说明现在有一个这样的表:每个部门有多少人就要用到分组的技术selectDepartmentIDas'部门名称',COUNT(*)as'个数'fromBasicDepartmentgroupbyDepartmentID--这个就是使用了groupby+字段进行了分组,其中我们就可以理解为我们按照了部门的名称ID--DepartmentID将数据集进行了分组;然后再进行各个组的统计数据分别有多少;--如果不用count(*)而用类似下面的语法selectDepartmentID,DepartmentNamefromBasicDepartmentgroupbyDepartmentID--将会出现错误--选择列表中的列'BasicDepartment.DepartmentName'无效,因为该列没有包含在聚合函数或GROUPBY子句中。这就是我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在GroupBy语句的后...
数据库操作教程 2022-09-23 18:21:59 -
SQL Server删除表中的重复数据
添加示例数据createtableStudent(IDvarchar(10)notnull,Namevarchar(10)notnull,);insertintoStudentvalues('1','zhangs');insertintoStudentvalues('2','zhangs');insertintoStudentvalues('3','lisi');insertintoStudentvalues('4','lisi');insertintoStudentvalues('5','wangwu');删除Name重复多余的行,每个Name仅保留1行数据1、查询表中Name重复的数据selectNamefromStudentgroupbyNamehavingcount(Name)>12、有唯一列,通过唯一列最大或最小方式删除重复记录检查表中是否有主键或者唯一值的列,当前可以数据看到ID是唯一的,可以通过Name分组排除掉ID最大或最小的行deletefromStudentwhereNamein(selectNamefromStudentgroupbyNamehavingco...
数据库操作教程 2022-09-23 18:21:24