-
sqlserver建库、建表、建约束技巧
下面给大家分享下sqlserver建库、建表、建约束技巧,下文介绍有文字有代码。--创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若不存在则创建----exists关键字:括号里边能查询到数据则返回‘true'否则返回‘false'ifexists(select*fromsysdatabaseswherename='School')--exists返回‘true'则执行删除数据库操作--dropdatabaseSchool--exists返回‘false'则表明数据库不存在,直接创建createdatabaseSchoolonprimary(--主数据库文件--name='School',--主数据文件逻辑名fileName='D:projectSchool.mdf',--主数据文件物理逻辑名size=5MB,--初始值大小maxsize=100MB,--最大大小filegrowth=15%--数据文件增长量)logon(--日志文件--name='School_log',filename='D:projectSchool_log.ldf',size=2MB...
数据库操作教程 2022-09-23 17:42:36 -
实例讲解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 -
浅析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