-
实例讲解sqlserver排名函数DENSE_RANK的用法
一、需求 之前sqlserver的排名函数用得最多的应该是RoW_NUMBER()了,我通常用ROW_NUMBER()+CTE来实现分页;今天逛园,看到另一个内置排名函数还不错,自己顺便想了一个需求,大家可以花1分钟先想想要怎么实现。 需求很简单:求成绩排名前五的学生信息...
数据库操作教程 2022-09-23 17:42:16 -
SQLServer2014哈希索引原理详解
当一个key-value键值对传递给一个哈希函数的时候,经过哈希函数的计算之后,根据结果会把key-value键值对放在合适的hashbuckets(哈希存储桶)里举个栗子我们假设对10取模(%10)就是哈希函数。如果key-value键值对的key是1525,传递到哈希函数,那么1525会存放在第五个bucket里因为5as1525%10=5...
数据库操作教程 2022-09-23 17:42:13 -
SQLLOADER错误小结
在使用SQL*LOADER装载数据时,由于平面文件的多样化和数据格式问题总会遇到形形色色的一些小问题,下面是工作中累积、整理记录的遇到的一些形形色色错误。希望能对大家有些用处...
数据库操作教程 2022-09-23 17:42:05 -
浅析SQLServer中的执行计划缓存(下)
在上篇文章给大家介绍了SQLServer中的执行计划缓存(上),本文继续给大家介绍sqlserver执行计划缓存相关知识,小伙伴们一起学习吧。简介在上篇文章中我们谈到了查询优化器和执行计划缓存的关系,以及其二者之间的冲突...
数据库操作教程 2022-09-23 17:41:58 -
SQLServer无法收缩日志文件的原因分析及解决办法
最近服务器执行收缩日志文件大小的job老是报错我所用的一个批量收缩日志脚本USE[master]GO/******Object:StoredProcedure[dbo].[ShrinkUser_DATABASESLogFile]ScriptDate:01/05/201609:52:39******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROC[dbo].[ShrinkUser_DATABASESLogFile]ASBEGINDECLARE@DBNAMENVARCHAR(MAX)DECLARE@SQLNVARCHAR(MAX)--临时表保存数据CREATETABLE#DataBaseServerData(IDINTIDENTITY(1,1),DBNAMENVARCHAR(MAX),Log_Total_MBDECIMAL(18,1)NOTNULL,Log_FREE_SPACE_MBDECIMAL(18,1)NOTNULL)--游标DECLARE@itemCurCURSORSET@itemCur=CURSORFORSELECTnamef...
数据库操作教程 2022-09-23 17:41:41 -
sqlserver创建临时表的两种写法和删除临时表
--创建、删除临时表--第一种方式createtable#tmp(namevarchar(255),idint)--第二种方式selectcount(id)asstoryNum,sum(convert(numeric(10,2),casewhenisnumeric(code)=1thencodeelse0end))ascodeNum,sum((casewhenisnumeric(realcode)=1thenconvert(numeric(10,2),realcode)else0.0end))asrealcodeNum,tdtname,cycle,jiracomponent,jirastatename,qualityvalue,storycodelltinto#tmpfromIKNOW_STORY_U2000V1R7C00groupbytdtname,cycle,jiracomponent,jirastatename,qualityvalue,storycodellt--查询临时表select*from#tmp--删除临时表ifobject_id('tempdb..#tmp')isno...
数据库操作教程 2022-09-23 17:41:35 -
安装完成后如何找回SQLServer实例安装时的序列号
当需要再次安装SQLServer时,如果序列号找不到了,可以试着从已经安装的实例里找回序列号,因为安装完SQLServer后,序列号(ProductKey)被保存在注册表里;MSDN订阅下载的安装包是内置序列号的,则没有这个困扰。一.序列号保存在哪通过无文档记载的扩展存储过程xp_regread读取注册表:--ForSQLServer2008,2008R2usemasterGOexecxp_regread'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftMicrosoftSQLServer100ToolsSetup','ProductCode'execxp_regread'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftMicrosoftSQLServer100ToolsSetup','DigitalProductID'GO--ForSQLServer2012usemasterGOexecxp_regread'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftMicrosoftSQLServer110To...
数据库操作教程 2022-09-23 17:41:30 -
实例讲解SQLServer加密功能
SQLServer中加密是层级的,每一个上层为下提供保护。如图:实例:/**SMK(ServiceMasterKey)在SQLServer安装时生成,由WindowsDPAPI(DataProtectionAPI)提供保护**//**创建数据库级别DMK(DatabaseMasterKey),受SMK保护**/createmasterkeyencryptionbypassword=N'Passw0rd'go/**数据库内的加密对象受DMK保护支持的对称加密算法:DES|TRIPLE_DES|TRIPLE_DES_3KEY|RC2|RC4|RC4_128|DESX|AES_128|AES_192|AES_256非对称加密算法:RSA_512|RSA_1024|RSA_2048注意避免使用RC,DESX类算法,2014之后会删除此功能**/--1.创建非对称密钥.createasymmetrickeyasyc_key_encwithalgorithm=RSA_1024encryptionbypassword=N'Pass@word'go--2.创建对称密钥.createsymmetrick...
数据库操作教程 2022-09-23 17:41:25 -
SQLServer数据库bcp导出备份文件应用示例
/***授权*/EXECsp_configure'showadvancedoptions',1;goreconfigure;goexecsp_configure'xp_cmdshell',1;goreconfigure;go/**导入指定表的文本文件*/EXECmaster..xp_cmdshell'bcpdbname..tablenameind:DT.txt-c-Sservername-Usa-Ppassword'execmaster..xp_cmdshell'bcp"select*fromdbname..tablename"queryout"D:20140528.xls"-c-Sservername-Uuser-Ppassword'xp_cmdshell参数说明下面是我自己写的一个存储过程,可以直接拿去使用第一步,先要授权。上面有授权的SQL代码ifexists(select*fromsysobjectswheretype='p'andname='sp_export_posm_data')begindropproceduresp_export_posm_data;end;gocre...
数据库操作教程 2022-09-23 17:41:18 -
浅谈基于SQLServer分页存储过程五种方法及性能比较
在SQLServer数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览。创建数据库data_Test:createdatabasedata_TestGOusedata_TestGOcreatetabletb_TestTable--创建表(idintidentity(1,1)primarykey,userNamenvarchar(20)notnull,userPWDnvarchar(20)notnull,userEmailnvarchar(40)null)GO插入数据:setidentity_inserttb_TestTableondeclare@countintset@count=1while@count<=2000000begininsertintotb_TestTable(id,userName,userPWD,userEmail)values(@count,'admin','admin888','[email protected]')set@count=@count+1endsetidentity_inserttb_TestTable...
数据库操作教程 2022-09-23 17:41:12 -
SqlServerMysql数据库修改自增列的值及相应问题的解决方案
SQLServer平台修改自增列值由于之前处理过sqlserver数据库的迁移工作,尝试过其自增列值的变更,但是通过SQL语句修改自增列值,是严格不允许的,直接报错(无法更新标识列'自增列名称‘)。sqlserver我测试是2008、2012和2014,都不允许变更自增列值,我相信SQLServer2005+的环境均不允许变更字段列值...
数据库操作教程 2022-09-23 17:41:01 -
SQLSERVER备份数据库存储过程的方法
sqlserver批量导出存储过程在查询分析器中,选中数据库——》右键“任务”——》在弹出菜单中选择“生成脚本”——》“下一步”——》选择你要存储过程所在数据库——》“下一步”——》勾选“存储过程”,并下一步——》勾选你要生成的存储过程名称,并下一步——》选择将脚本保存到文件,并选择保存路径——》完成还有一种直接通过sql语句实现:setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERPROCEDURE[dbo].[dbBak]ASBEGINDECLARE@sqlCommandNVARCHAR(1000)DECLARE@dateTimeNVARCHAR(20)SELECT@dateTime=REPLACE(CONVERT(VARCHAR,GETDATE(),111),'/','')+REPLACE(CONVERT(VARCHAR,GETDATE(),108),':','')SET@sqlCommand='BACKUPDATABASEBLNBusyDataTODISK=''D:DataBaseBakUpbln_'+@dateTime+'...
数据库操作教程 2022-09-23 17:40:54