-
SQLServer总结复习(一)
1.TVP,表变量,临时表,CTE的区别TVP和临时表都是可以索引的,总是存在tempdb中,会增加系统数据库开销,而表变量和CTE只有在内存溢出时才会被写入tempdb中。对于数据量大,并且反复使用,反复进行查询关联的,建议使用临时表或TVP,数据量小,使用表变量或CTE比较合适2.sql_variant万能类型可以存放所有数据类型,相当于C#中的object数据类型3.datetime,datetime2,datetimeoffsetdatetime时间有效期较小,在1753-1-1之前就不能使用了,精度为毫秒级别,而datetime2数据范围相当于C#中的datetime,精度达到了秒后面小数点后7位,datetimeoffset则是考虑是时区的日期类型4.MERGE的用法语法很简单就不说了,主要是处理两张表某些字段对比后的操作,需注意whennotmatched(bytarget)与whennotmatchedbysource的区别,前者是是针对对比后目标表不存在的记录,可以选择insert操作,而后者则是针对对比后目标表多出来的记录,可以选择delete或update操作5....
数据库操作教程 2022-09-23 16:49:34 -
SQLServer2008到底需要使用哪些端口?
下面就来介绍下SQLServer2008中使用的端口有哪些: 首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果我们要远程连接数据库引擎,那么就需要打开该端口...
数据库操作教程 2022-09-23 16:49:33 -
SQLServer总结复习(二)
1.排名函数与PARTITIONBY复制代码代码如下:--所有数据SELECT*FROMdbo.studentASaINNERJOINdbo.ScoreTBASbONa.Id=b.stuidWHEREscorename='语文'---------------------------------------------ROW_NUMBER()的使用生成列从1开始依次增加-------------------------------------------SELECTROW_NUMBER()OVER(ORDERBYB.SCOREDESC)ASROWNUMBER,A.NAME,B.SCORE,a.IdFROMdbo.studentASaINNERJOINdbo.ScoreTBASbONa.Id=b.stuidWHEREscorename='语文'--也可以在后面再加一个orderby,则表示前面生成后的全部列又被以最后的列重新排列(排名列值不变)SELECTROW_NUMBER()OVER(ORDERBYB.SCOREDESC)ASROWNUMBER,A.NAME,B.SCORE,a.IdF...
数据库操作教程 2022-09-23 16:49:30 -
SQLServer双服务器架设并数据自动同步教程
交待:使用的软硬件环境为WinXPSP2、SQLServer2000SP2个人版、普通双核台式机、1000M局域网,A机为已使用的服务器,上面已有数据库和海量数据,B机为此次新架服务器,两机登陆方式均为sqlserver身份验证模式,其它设置均为默认设置,无特别。A机上另有FTP服务器,用于程序自动更新...
数据库操作教程 2022-09-23 16:49:26 -
sqlserver快速生成汉字的首拼字母的函数(经典)
代码如下:复制代码代码如下:USE[tempdb]GO/******Object:UserDefinedFunction[dbo].[fun_getPY]ScriptDate:05/23/201218:03:45******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO/*获取汉字的首拼音如果是非汉字字符*/ALTERfunction[dbo]...
数据库操作教程 2022-09-23 16:49:23 -
sqlserver中with(nolock)深入分析
在查询语句中使用NOLOCK和READPAST处理一个数据库死锁的异常时候,其中一个建议就是使用NOLOCK或者READPAST。有关NOLOCK和READPAST的一些技术知识点:对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先考虑,我们业务逻辑是否能容忍出现或者不出现某些记录,而不是寻求对双方都加锁条件下如何解锁的问题...
数据库操作教程 2022-09-23 16:49:22 -
T-SQL篇如何防止SQL注入的解决方法
1.什么是SQL注入所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击...
数据库操作教程 2022-09-23 16:49:21 -
sqlserver中根据字符分割字符串的最好的写法分享
知识点:1、拼接SQL2、UNIONALL3、EXEC其代码如下:复制代码代码如下:--测试示例declare@sqlvarchar(2000),@tsqlnvarchar(max)...
数据库操作教程 2022-09-23 16:49:19 -
sqlserver中求字符串中汉字的个数的sql语句
关于这个话题,我也看到网上有其他方法来解决。不过从性能和代码量上来看,我有更好的办法...
数据库操作教程 2022-09-23 16:49:18 -
通过T_sql语句向其中一次填入一条数据或一次填入多条数据的方式填充数据
使用T_SQL创建数据库TestSchool创建一个学生表TblStudent创建学生成绩表TblScoreqtScoreId(成绩id,主键,自动编号)、tSId(学生编号)、tEnglish(英语成绩)、tMath(数学成绩)创建老师表TblTeacherqtTId、tTName、tTGender、tTAge、tTSalary、tTBirthday并使用T_sql语句向其中一次填入一条数据或一次填入多条数据的方式填入数据。(1)Insertinto表(列)select列1,列2union2)Insertinto表(列)select列1,列2from表3)Select列into新表名from旧表)复制代码代码如下:createdatabaseTestSchoolonprimary(name='TestSchool',filename='F:SQLServerTestSchool.mdf',size=10mb,filegrowth=10,maxsize=100mb)logon(name='TestSchool_log',filename='F:SQLServerTestSchool_l...
数据库操作教程 2022-09-23 16:49:15 -
sqlserver分页的两种写法分别介绍
第一种是最传统的写法,用存储过程中的变量作为分页的乘数复制代码代码如下:[c-sharp]viewplaincopyprint?createprocp_paged1@pageSizeint,@currentPageintasselecttop(@pageSize)*fromstudentwhereidnotin(selecttop(@pageSize*(@currentPage-1))idfromstudent)goexecp_paged12,3createprocp_paged1@pageSizeint,@currentPageintasselecttop(@pageSize)*fromstudentwhereidnotin(selecttop(@pageSize*(@currentPage-1))idfromstudent)goexecp_paged12,3--SQLServer2005以后的分页语句复制代码代码如下:[c-sharp]viewplaincopyprint?createprocp_paged2@pageStartint,@pageEndintasselect*fro...
数据库操作教程 2022-09-23 16:49:08 -
SqlServer索引使用情况及优化的相关Sql语句分享
复制代码代码如下:--BeginIndex(索引)分析优化的相关Sql--返回当前数据库所有碎片率大于25%的索引--运行本语句会扫描很多数据页面--避免在系统负载比较高时运行--避免在系统负载比较高时运行declare@dbidintselect@dbid=db_id()SELECTo.nameastablename,s...
数据库操作教程 2022-09-23 16:49:03