-
INSERTINTOSELECT语句与SELECTINTOFROM语句的一些区别
1.INSERTINTOSELECT语句语句形式为:InsertintoTable2(field1,field2,...)selectvalue1,value2,...fromTable1要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:INSERTINTOSELECT语句复制表数据复制代码代码如下:--1.创建测试表createTABLETable1(avarchar(10),bvarchar(10),cvarchar(10),CONSTRAINT[PK_Table1]PRIMARYKEYCLUSTERED(aASC))ON[PRIMARY]createTABLETable2(avarchar(10),cvarchar(10),dint,CONSTRAINT[PK_Table2]PRIMARYKEYCLUSTERED(aASC))ON[PRIMARY]GO--2.创建测试数据InsertintoTable1values('赵','asds','90')InsertintoTable1values('钱'...
数据库操作教程 2022-09-23 17:16:32 -
多列复合索引的使用绕过微软sqlserver的一个缺陷
然而,微软sqlserver在处理这类索引时,有个重要的缺陷,那就是把本该编译成索引seek的操作编成了索引扫描,这可能导致严重性能下降举个例子来说明问题,假设某个表T有索引(cityid,sentdate,userid),现在有个分页列表功能,要获得大于某个多列复合索引V0的若干个记录的查询,用最简单表意的方式写出来就是V>=V0,如果分解开来,就是:cityid>@cityid0or(cityid=@cityid0and(sentdate>@sentdate0or(sentdate=@sentdate0anduserid>=@userid0))),当你写出上述查询时,你会期待sqlserver会自动的把上述识别为V>=V0类型的边界条件,并使用indexseek操作来实施该查询。然而,微软的sqlserver(2005版)有一个重要缺陷(其他的sqlserver如何还不得知),当它遇到这样sql时,sqlserver就会采用indexscan来实施,结果是您建立好的索引根本就没有被使用,如果这个表的数据量很大,那所造成的性能下降是非常大的...
数据库操作教程 2022-09-23 17:13:59 -
将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 -
PL/SQLDEVELOPER使用的一些技巧
1,登录后默认自动选中MyObjects默认情况下,PLSQLDeveloper登录后,Brower里会选择Allobjects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择MyObjects后响应速率则是以毫秒计算的。Tools菜单-->ObjectBrowerFilters,会打开BrowerFolders的定单窗口,把“MyObjects”设为默认即可...
数据库操作教程 2022-09-23 17:13:11 -
SQLServer数据库索引其索引的小技巧
一、什么是索引减少磁盘I/O和逻辑读次数的最佳方法之一就是使用【索引】索引允许SQLServer在表中查找数据而不需要扫描整个表。1.1、索引的好处:当表没有聚集索引时,成为【堆或堆表】【堆】是一堆未加工的数据,以行标识符作为指向存储位置的指针...
数据库操作教程 2022-09-23 17:10:11 -
SQLServer误区30日谈第14天清除日志后会将相关的LSN填零初始化
误区#14.清除日志后会将相关的LSN填零初始化错误 当日志文件在手动增长,自动增长和创建时都会进行填零初始化操作。但是请不要把这个过程和定期清除日志的过程搞混...
数据库操作教程 2022-09-23 17:06:57 -
SQLServer误区30日谈第21天数据损坏可以通过重启SQLServer来修复
误区#21:数据库损坏可以通过重启SQLServer或是Windows,或是附加和分离数据库解决错误SQLServer中没有任何一项操作可以修复数据损坏。损坏的页当然需要通过某种机制进行修复或是恢复-但绝不是通过重启动SQLServer,Windows亦或是分离附加数据库...
数据库操作教程 2022-09-23 17:05:18 -
SQLServer误区30日谈第22天资源调控器可以调控IO
误区#22:资源调控器可以调控IO错误 资源调控器无法调控IO,希望下一个版本的SQLServer支持调控IO,调控IO对于对于减少对于大表的scan操作带来的性能影响很有帮助。 下面列表中的功能资源调控器同样也无法完成:调控BufferPool的内存,内存调控器仅仅可以调控执行计划所占的内存,但对于BufferPool中缓存的数据页是无法调控的可以对多个实例进行当作一个逻辑实体进行资源调控...
数据库操作教程 2022-09-23 17:04:02 -
SQLServer误区30日谈第27天使用BACKUPWITHCHECKSUM可以替代DBCCCheckDB
误区#27:使用BACKUP...WITHCHECKSUM可以替代DBCCCheckDB错误 乍一看,由于BACKUPWITHCHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQLServer2000或是更早版本升上来的数据库pagechecksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP...WITHCHECKSUM就有可能导致一些损坏页不被发现,造成的后果…… 除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCCCheckDB的最佳实践是一个礼拜,这导致WITHCHECKSUM不能替代CHECKDB...
数据库操作教程 2022-09-23 17:03:22 -
SQLJoin的一些总结(实例)
1.1.1摘要Join是关系型数据库系统的重要操作之一,SQLServer中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用Join,因为Join具体联接表或函数进行查询的特性本文将通过具体例子介绍SQL中的各种常用Join的特性和使用场合:1.1.2正文首先我们在tempdb中分别定义三个表College、Student和Apply,具体SQL代码如下:复制代码代码如下:USEtempdb----Ifdatabaseexiststhesamenamedatatabledeletesit.IFEXISTS(SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_NAME='College')DROPTABLECollege;IFEXISTS(SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_NAME='Student')DROPTABLEStudent;IFEXISTS(SE...
数据库操作教程 2022-09-23 17:02:20 -
SQLTranscation的一些总结分享
1.1.1摘要相信大家对于SQLTranscation再熟悉不过,它确保了数据库的数据一致性和安全性,尤其在对数据执行增删时,如果发生异常和错误它就会触发事务回滚,从而确保了我们数据的一致性和安全性,下面我们将通过分四部分介绍事件(Transcation)。1.1.2正文首先让我们通过一个具体的例子介绍Transcation的使用,假如我们的数据库中有一个表UserInfo,它包含三个字段分别为:UserID(自增)、UserName(nvarchar)和LuckyNumber(tinyint),如下图所示:图1UserInfo表UserInfo表的sql代码如下:复制代码代码如下:--ThedefinitionofUserInfo.SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[UserInfo]([UserID][int]IDENTITY(1,1)NOTNULL,[UserName][nvarchar](50)NOTNULL,[LuckyNumber][tinyint]NOTNULL)ON[PRIMARY]接着我...
数据库操作教程 2022-09-23 17:02:11 -
SQLServer误区30日谈第3天即时文件初始化特性可以在SQLServer中开启和关闭
本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQLTuesday#11:Misconceptionsabout....EVERYTHING!!,经过我们团队的翻译和整理发布在AgileSharp和博客园上。希望对大家有所帮助...
数据库操作教程 2022-09-23 17:01:25