-
SQLServer游标的介绍与使用
游标概念数据库操作中我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案...
数据库操作教程 2022-09-23 16:42:24 -
SQLSERVER2012数据库自动备份的方法
为了防止数据丢失,这里给大家介绍SQLSERVER2012数据自动备份的方法:一、打开SQLSERVER2012,如图所示:服务器类型:数据库引擎;服务器名称:127.0.0.1(本地),也可以选择远程连接;身份验证:包含Windows身份验证和SQLServer身份验证,此处选择Windows身份验证;二、如图,选择【管理】-->【维护计划】-->【维护计划向导】:三、在【SQLSERVER维护计划向导】界面,点击【下一步】: 四、填写如图所示:名称和说明,点击【更改】: 五、在【新建作业计划】界面,选择数据库备份的频率,如图,然后确定:计划类型:重复执行;频率执行:每周(每天、每月);每天频率:时间自行选择;持续时间:开始时间默认当前时间,结束时间可以不填;六、如图,显示当前计划属性:七、此处选择【备份数据库(完整)】,然后【下一步】:八、如果有多个数据库同时备份,这里可以选择执行顺序,此处默认一个: 九、选择要备份的数据库(可以多选):十、选择数据库备份的目录: 十一、选择报告文件对应的目录: 十二、在【完成该向导】界面,可以看到设置备份的详细信息:十三、到此,...
数据库操作教程 2022-09-23 16:42:20 -
SQLServer中查询结果超出了查询时间范围解决方法
废话少说,直接上SQL代码(有兴趣的测试验证一下),下面这个查询语句为什么将2008-11-27的记录查询出来了呢?这个是同事遇到的一个问题,个人设计了一个例子。USEAdventureWorks2014;GOSELECT*FROM[Person].[Person]WHEREModifiedDate>='2008-11-2600:00:00:000'ANDModifiedDate<='2008-11-2623:59:59.999' 其实如果细看过文档的话,应该知道是什么原因,因为数据类型Datetiem的时间范围:00:00:00到23:59:59.997,最后部分的范围为0~997,官方文档提示,datetime的秒的小数部分精度的有舍入,具体请见下面datetime秒的小数部分精度的舍入如下表所示,将datetime值舍入到.000、.003、或.007秒的增量...
数据库操作教程 2022-09-23 16:42:20 -
SQLServer正确删除Windows认证用户的方法
前言在SQLServer数据库中,有时候会建立一些Windows认证的账号(域账号),例如,我们公司习惯给开发人员和Support同事开通NT账号权限,如果有离职或负责事宜变更的话,那么要如何正确的删除这些Windows认证账号呢?这篇文章就是来探讨一下如何正确的删除Windows认证账号。如下所示:下面这种方式,仅仅是删除登录名(login),然而并没有删除用户(User)USE[master]GODROPLOGIN[xxxxxxx]GO你删除登录名的时候,就会遇到类似下面的告警信息:Deletingserverloginsdoesnotdeletethedatabaseusersassociatedwiththelogins.Tocompletetheprocess,deletetheusersineachdatabase.Itmaybenecessarytofirsttransfertheownershipofschemastonewusers.也就是说,虽然你删除了登录名,但是对应用户数据库或系统数据库相关的User权限并没有清理,在SQLServer中登录名(ServerLo...
数据库操作教程 2022-09-23 16:42:18 -
SQLServer数据库调整表中列的顺序操作方法及遇到问题
SQLServer数据库中表一旦创建,我们不建议擅自调整列的顺序,特别是对应的应用系统已经上线,因为部分开发人员,不一定在代码中指明了列名。表是否可以调整列的顺序,其实可以自主设置,我们建议在安装后设置为禁止...
数据库操作教程 2022-09-23 16:42:18 -
SQLServer开窗函数Over()代替游标的使用详解
前言:今天在优化工作中遇到的sql慢的问题,发现以前用了挺多游标来处理数据,这样就导致在数据量多的情况下,需要一行一行去遍历从而计算需要的数据,这样处理的结果就是数据慢,容易卡死。语法介绍:1、与Row_Number()函数结合使用,对结果进行排序,这个是我们使用的非常多的 2、与聚合函数结合使用,利用over子句的分组和排序,对需要的数据进行操作例如:SUM()Over()累加值、AVG()Over()平均数MAX()Over()最大值、MIN()Over()最小值具体介绍:下面模拟工作中通过开窗函数代替游标的例子,通过期初余额与单据的预收金额、应收金额、实收金额来计算截止本单的期末余额,在以往就是通过游标一行一行去遍历,计算需要的期末余额,现在使用SUM()Over()来代替,最终要实现的效果图如下:第一行表示标题;第二行表示客户,是一行空行;第三行是期初余额,只显示期末余额的数据,第四至第六行表示的是每种单据的余额情况,并逐步汇总当前行的期末余额数据;最后一行表示的是对客户的合计...
数据库操作教程 2022-09-23 16:42:05 -
SQLServer使用joinall优化or查询速度
比如:,master,test,表示该用户为test的下级代码,test登录后可以看到test名下的业务和所有下级代理的业务。相关表的结构如下:user表大约10万条记录|-uid-|-user-|----site------||1|test|,master,||2|user|,master,test,|product表大约30万条记录|-pid-|-product-|-puser-||1|order01|test||2|order02|user||3|order03|user|优化前的SQL语句如下:select*fromproductaspleftjoinuserasuonp.puser=u.userwhereuser='test'orsitelike'%,test,%'不使用or单独查询时,都不超过100毫秒,排除索引的问题...
数据库操作教程 2022-09-23 16:42:03 -
Zabbix监控SQLServer服务状态的方法详解
SQLServer数据库的服务(SQLServer(MSSQLSERVER)、SQLServerAgent(MSSQLSERVER)等服务)一般配置成自动启动,但是有时候有些服务组件也会突然停止。有些是因为异常或Bug,有些是因为配置缘故、有些是因为非规范操作(例如重启SQLServer(MSSQLSERVER)时关闭了SQLServerAgnt服务,但是没有检查或重启这个服务)...
数据库操作教程 2022-09-23 16:41:58 -
SQLServerTop语句参数化方法
declare@TopCountintset@TopCount=100selecttop(@TopCount)*fromAdventureWorks.HumanResources...
数据库操作教程 2022-09-23 16:41:50 -
sql触发器使用例子
inserted,deleted是在触发器中使用的两个临时表,当执行insert操作时,在inserted中存储着当前插入的记录,在执行delete操作时,在deleted中存储着当前删除的记录,当执行update时,在inserted中存储着修改后的记录,在deleted中存储着修改前的记录。复制代码代码如下:setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERTRIGGER[dnt_user_add]ON[dbo].[dnt_users]AFTERINSERTASBEGINSETNOCOUNTON;insertinto[dnt_userfields](uid)selectuidfrominsertedEND删除:复制代码代码如下:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETRIGGER[dnt_users_del]ON[dnt_users]AFTERDELETEASBEGINSETNOCOUNTON;delete[dnt_userfields]fromdeletedwhere[dnt_userf...
数据库操作教程 2022-09-23 16:40:17 -
只有让使用者建立自主产权,才能彻底迈入Web3.0时代
如今,互联网正在从Web2.0时代向Web3.0时代迈进。Web3.0源起已久,甚至在Web2.0出现之初,就已开始有人预言其出现...
区块链 2022-09-15 23:36:34 -
iPhone14购买用户升级时仍可使用免费iCloud存储进行备份
IT之家 9 月 9 日消息,随着去年 iOS 15 的发布,苹果为购买新 iPhone 或 iPad 的用户增加了一项新福利。当用户购买新 iPhone(包括新 iPhone 14 系列) 或 iPad 时,将获得 iCloud 存储空间的临时提升,以备份旧 iPhone...
手机互联 2022-09-10 04:17:43