-
MSSQL自动重建出现碎片的索引的方法分享
1.索引碎片的产生?由于在表里大量的插入、修改、删除操作而使索引页分裂。如果索引有了高的碎片,有两种情况,一种情况是扫描索引需要花费很多的时间,另一种情况是在查询的时候索引根本不使用索引,都会导致性能降低...
数据库操作教程 2022-09-23 17:59:04 -
SQLReportBuilder报表里面的常见问题分析
一SQL报表常常会遇到在表格中的相除,如果分母为零,一般会显示错误号,我们可以这么处理:(加上是A/B)=A/iif(B=0,99999999999999,B)但是我们不能这么写:=iif(B=0,0,A/B) //我们不能这么写,会产生BUG,至于什么BUG,你们可以自己试试二我们假设报表中的某一个格子的名字为A,我们在A中需要引用另一个格子B的值,在这种情况下,我们通常会把B中的计算公式再次引用在A中复制一遍,这样很导致很麻烦。我们可以在A中直接这么写:ReportItems!B表的名字.Value这样就不需要再一次得把公式写一遍了三在报表曲线图中的横坐标,倘若我们需要动态得变化横坐标,我们这时候一般会把轴选项设置为自动,但是这样往往得不到我们想要的结果,下面的例子就是根据参数(开始时间和结束时间)的间隔动态地改变横坐标的样式水平轴属性》数字》自定义=IIf(Parameters!startime.Value=Parameters!endtime.Value,"",iif(DateAdd(DateInterval.day,-4,Parameters!endtime.Val...
数据库操作教程 2022-09-23 17:49:15 -
查询Sqlserver数据库死锁的一个存储过程分享
使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁,死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉。利用sp_who_lock这个存储过程,可以很方便的知道哪个进程出现了死锁,出现死锁的问题在哪里.创建sp_who_lock存储过程CREATEproceduresp_who_lockasbegindeclare@spidintdeclare@blkintdeclare@countintdeclare@indexintdeclare@locktinyintset@lock=0createtable#temp_who_lock(idintidentity(1,1),spidint,blkint)if@@error<>0return@@errorinsertinto#temp_who_lock(spid,blk)select0,blockedfrom(select*frommaster..sysprocesseswhereblocked>0)awherenotexists(select*frommas...
数据库操作教程 2022-09-23 17:47:30 -
常用SQL语句查询分享
--创建数据库(文件:主要数据文件mdf==1,次要数据文件ndf>=0,日志文件ldf>=1)--文件组:当1mdf,5个ndf(1,2,2),10个ldf(3,3,4),将它们分成多个组存放CREATEdatabasestudb;--创建表teacher,studentcreatetableteacher(tidint(10)primarykeyauto_increment,tnamevarchar(20),tageint(10));usestudb;createtablestudent(sidint(10)primarykeyauto_increment,snamevarchar(20),sageint(10),tidint(10)REFERENCESteacher(tid));--外键约束:你问张三的老师是谁??--selectteacher.tnamefromteacher,studentwherestudent...
数据库操作教程 2022-09-23 17:47:28 -
sqlserver锁表语句分享
锁定数据库的一个表SELECT*FROMtableWITH(HOLDLOCK)注意:锁定数据库的一个表的区别SELECT*FROMtableWITH(HOLDLOCK)其他事务可以读取表,但不能更新删除SELECT*FROMtableWITH(TABLOCKX)其他事务不能读取表,更新和删除SELECT语句中“加锁选项”的功能说明SQLServer提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQLServer的缺省设置也可以在select语句中使用“加锁选项”来实现预期的效果...
数据库操作教程 2022-09-23 17:35:06 -
SqlServer中常用的6个自定义函数分享
在日常应用中,往往根据实际需求录入一些值,而这些值不能直接使用,所以Sql中经常会对字段值进行一些常规的处理。这里搜集了(提取数字、英文、中文、过滤重复字符、分割字符的方法),方便日后查询使用...
数据库操作教程 2022-09-23 17:30:34 -
SQL比较一个集合是否在另一个集合里存在的方法分享
复制代码代码如下:DECLARE@cINTDECLARE@c2INTSELECT@c=COUNT(1)FROMdbo.SplitToTable('1|2|3|4','|')SELECT@c2=COUNT(1)FROMdbo...
数据库操作教程 2022-09-23 17:28:43 -
SqlServer中tempdb的日志机制原理解析及示例分享
测试用例我们分别在用户数据库(testpage),tempdb中创建相似对象t1,#t1,并在tempdb中创建创建非临时表,然后执行相应的insert脚本(用以产生日志),并记录执行时间用以比较用以比较说明tempdb”快”Code用户数据库testpageusetestpagegocreatetablet1(idintidentity(1,1)notnull,str1char(8000))declare@tdatetime2=sysutcdatetime()declare@iintset@i=1while(@i<100000)begininsertintot1select@i,'aa'select@i=@i+1endselect[extime]=DATEDIFF(S,@t,sysutcdatetime())tempdbusetempdbgocreatetable#t1(idintnotnull,str1char(8000))declare@tdatetime2=sysutcdatetime()declare@iintset@i=1while(@i<100000)begi...
数据库操作教程 2022-09-23 17:25:50 -
sqlserver合并DataTable并排除重复数据的通用方法分享
代码如下:复制代码代码如下:///<summary>///将两个列不同的DataTable合并成一个新的DataTable///</summary>///<paramname="dt1">源表</param>///<paramname="dt2">需要合并的表</param>///<paramname="primaryKey">需要排重列表(为空不排重)</param>///<paramname="maxRows">合并后Table的最大行数</param>///<returns>合并后的datatable</returns>publicstaticDataTableMergeDataTable(DataTabledt1,DataTabledt2,stringprimaryKey,intmaxRows){//判断是否需要合并if(dt1==null&&dt2==null){returnnull;}if(dt1==null&...
数据库操作教程 2022-09-23 17:25:18 -
分享Sql日期时间格式转换
Sqlserver2000中使用convert来取得datetime数据类型样式(全)日期数据格式的处理,两个示例:CONVERT(varchar(16),时间一,20)结果:2007-02-0108:02/*时间一般为getdate()函数或数据表里的字段*/CONVERT(varchar(10),时间一,23)结果:2007-02-01/*varchar(10)表示日期输出的格式,如果不够长会发生截取*/语句及查询结果:复制代码代码如下:SelectCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSelectCONVERT(varchar(100),GETDATE(),1):05/16/06SelectCONVERT(varchar(100),GETDATE(),2):06.05.16SelectCONVERT(varchar(100),GETDATE(),3):16/05/06SelectCONVERT(varchar(100),GETDATE(),4):16.05.06SelectCONVERT(varchar(100),GET...
数据库操作教程 2022-09-23 17:17:23