-
利用SQLServer触发器实现表的历史修改痕迹记录
在很多应用程序开发中,需要记录某些数据表的历史记录或修改痕迹,以便日后出现数据错误时进行数据排查。这种业务需求,我们可以通过数据库的触发器来轻松实现历史记录功能...
数据库操作教程 2022-09-23 18:23:24 -
SQLServer实现用触发器捕获DML操作的会话信息【实例】
需求背景上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因;文档缺少;以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作。现在他们想找出有哪些服务器,哪些应用程序会对这个表进行INSERT、UPDATE操作...
数据库操作教程 2022-09-23 18:23:24 -
SqlServer临时表和游标的使用小结
1.临时表临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除。临时表有局部和全局两种类型2者比较:局部临时表的名称以符号(#)打头仅对当前的用户连接是可见的当用户实例断开连接时被自动删除全局临时表的名称以符号(##)打头任何用户都是可见的当所有引用该表的用户断开连接时被自动删除实际上局部临时表在tempdb中是有唯一名称的例如我们用sa登陆一个查询分析器,再用sa登陆另一查询分析器在2个查询分析器我们都允许下面的语句:usepubsgoselect*into#temfromjobs分别为2个用户创建了2个局部临时表我们可以从下面的查询语句可以看到SELECT*FROM[tempdb].[dbo].[sysobjects]wherextype='u'判断临时表的存在性:ifobject_id('tempdb..#tem')isnotnullbeginprint'exists'endelsebeginprint'notexists'end特别提示:1...
数据库操作教程 2022-09-23 18:23:20 -
何谓SQLSERVER参数嗅探问题
大家听到“嗅探”这个词应该会觉得跟黑客肯定有关系吧,使用工具嗅探一下参数,然后截获,脱裤o(∩_∩)o。事实上,我觉得大家太敏感了,其实这篇文章跟数据库安全没有什么关系,实际上跟数据库性能调优有关相信大家有泡SQLSERVER论坛的话不多不少应该都会见过“参数嗅探”这几个字这里有三篇帖子都是讲述参数嗅探的http://social.msdn.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/caccb7f3-8366-4954-8f8a-145eb6bca9ddhttp://msdn.microsoft.com/zh-cn/magazine/ee236412.aspxhttp://social.msdn.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/bfbe54de-ac00-49e9-a83b-f97a60bf74ef下面我给出一个测试数据库的备份文件,里面有一些表和一些测试数据,大家可以去下载,因为我下面用的测试表都是这个数据库里的只需要还原数据库就可以了,这个数据库是SQL2005...
数据库操作教程 2022-09-23 18:23:20 -
SQLServer存储过程创建和修改的实现代码
打开SQLServer2005的管理工具,选中需要创建存储过程的数据库,找到“可编程性”,展开后可以看到“存储过程”。右键点击它,选择“新建存储过程”,右侧的编辑窗口打开了,里面装着微软自动生成的SQLServer创建存储过程的语句...
数据库操作教程 2022-09-23 18:23:16 -
SQLserver中cube:多维数据集实例详解
1、cube:生成多维数据集,包含各维度可能组合的交叉表格,使用with关键字连接withcube根据需要使用unionall拼接判断某一列的null值来自源数据还是cube使用GROUPING关键字GROUPING([档案号])=1:null值来自cube(代表所有的档案号)GROUPING([档案号])=0:null值来自源数据举例:SELECT*INTO##GETFROM(SELECT*FROM(SELECTCASEWHEN(GROUPING([档案号])=1)THEN'合计'ELSE[档案号]ENDAS'档案号',CASEWHEN(GROUPING([系列])=1)THEN'合计'ELSE[系列]ENDAS'系列',CASEWHEN(GROUPING([店长])=1)THEN'合计'ELSE[店长]ENDAS'店长',SUM(剩余次数)AS'总剩余',CASEWHEN(GROUPING([店名])=1)THEN'合计'ELSE[店名]ENDAS'店名'FROM##PudianCardGROUPBY[档案号],[店名],[店长],[系列]WITHcubeHAVINGGROUPIN...
数据库操作教程 2022-09-23 18:23:13 -
SQLServer免费版的安装以及使用SQLServerManagementStudio(SSMS)连接数据库的图文方法
一、SQLServer和SSMS的安装1.SQL的安装下载地址:SQLServer。进入下载地址选择Developer或者Express都可以...
数据库操作教程 2022-09-23 18:23:09 -
实现SQLServer原生数据从XML生成JSON数据的实例代码
实现SQLServer原生数据从XML生成JSON数据的实例代码 SQLServer是关系数据库,查询结果通常都是数据集,但是在一些特殊需求下,我们需要XML数据,最近这些年,JSON作为WebAPI常用的交换数据格式,那么数据库如何生成JSON数据呢?今天就写了一个DEMO. 1...
数据库操作教程 2022-09-23 18:23:05 -
SQLServerAlert发送告警邮件少了的原因
最近突然发现我们部署在数据库上面的告警(Alert),当错误日志里面出现错误时,并不是每个错误日志都会发送邮件出来。如下所示,设置了告警“SQLServerSeverityEvent14” USE[msdb]GOIFNOTEXISTS(SELECT1FROMmsdb.dbo.syscategoriesWHERENAME='DBA_MONITORING'ANDcategory_class=2)BEGINEXECmsdb.dbo.sp_add_category@class=N'ALERT',@type=N'NONE',@name=N'DBA_MONITORING';ENDGOIFEXISTS(SELECTnameFROMmsdb.dbo.sysalertsWHEREname=N'SQLServerSeverityEvent14')EXECmsdb.dbo.sp_delete_alert@name=N'SQLServerSeverityEvent14'GOEXECmsdb.dbo.sp_add_alert@name=N'SQLServerSeverityEvent14',@mess...
数据库操作教程 2022-09-23 18:22:59 -
sqlserver通过pivot对数据进行行列转换的方法
脚本:/*说明:sqlserver如何通过pivot对数据进行行列转换*/createtable#t([员工工号]nvarchar(50),[员工姓名]nvarchar(50)...
数据库操作教程 2022-09-23 18:22:59 -
SQLServer性能优化--间接实现函数索引或者Hash索引
SQLServer中没有函数索引,在某些场景下查询的时候要根据字段的某一部分做查询或者经过某种计算之后做查询,如果使用函数或者其他方式作用在字段上之后,就会限制到索引的使用,不过我们可以间接地实现类似于函数索引的功能。另外一个就是如果查询字段较大或者字段较多的时候,所建立的索引就显得有点笨重,效率也不高,就需要考虑使用一个较小的"替代性"字段做等价替换,类似于Hash索引,本文粗浅地介绍两种上述两种问题的解决方式,仅供参考...
数据库操作教程 2022-09-23 18:22:57 -
MSSQL2000使用帮助(sqlserver简明教程)
SQLSERVER2000安装教程:https://www.jb51.net/article/37380.htm1、如果您的SQL空间开通以后,请打开您本地的SQLserver企业管理器,如下图:2、点SQLserver组右键,选择新建SQLserver注册,如下图:3、弹出SQLserver注册向导,点下一步,如下图:4、可用的服务器填写,您订单中的服务器IP地址,然后点添加,如下图:5、您添加的服务器IP即可增加到右侧,然后点下一步,如下图:6、按下图选择连接使用方式,点下一步;7、按下图所示,按您的订单中显示的SQL用户名和密码,分别填写后,点下一步;8、完成SQLserver注册,点击完成,如下图:9、显示注册成功。(如果总是提示失败,请检查您的局域网是否开放了1433端口,同时检查您的SQL链接超时时间,SQL默认超时时间为4秒,建议改成60秒---在SQLserver企业管理器=>工具=>选项=>高级...
数据库操作教程 2022-09-23 18:22:56