什么是主键?在数据库中,常常不只是一个表,这些表之间也不是相互独立的。不同的表之间需要建立一种关系,才能将它们的数据相互沟通。而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的。通过这个字段中不同的值可以区别各条记录。就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份证号是每个人都不同的,所以可以根据它来区别不同的人。数据库的表中作为主键的字段就要像人的身份证号一样,必须
系统 2019-08-12 01:52:31 2150
以前拼接的写法set@sql='select*fromtablewhere1=1'if(@addDateisnotnull)set@sql=@sql+'andaddDate='+@addDate+''if(@name<>''andisnotnull)set@sql=@sql+'andname='+@name+''exec(@sql)下面是不采用拼接SQL字符串实现多条件查询的解决方案第一种写法是感觉代码有些冗余if(@addDateisnotnull)an
系统 2019-08-12 01:33:49 2150
一、深入浅出理解索引结构二、改善SQL语句三、实现小数据量和海量数据的通用分页显示存储过程聚集索引的重要性和如何选择聚集索引在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象:1、分页速度一般维持在1秒和3秒之间。2、在查询最后一页时,速度一般为5秒至8秒,哪怕分页总数只有3页或30万页。虽然在超大容量情况下,这个分页的
系统 2019-08-12 01:32:53 2150
在低版本的PowerDesigner中,很多人会使用以下脚本生成SQLServer的表注释和列注释信息:----表级的注释代码是:EXECUTEsp_addextendedpropertyNMS_Description,N%COMMENT%,Nuser,N%OWNER%,Ntable,N%TABLE%,NULL,NULL----列级的注释代码是EXECUTEsp_addextendedpropertyNMS_Description,N%COMMENT%,N
系统 2019-08-29 23:09:52 2148
第一章测试背景SQLSERVER日志传送功能可自动复制数据库的日志文件,并回存到备份服务器(standbyserver)的另外一个数据库。因此可大幅提高SQLServer数据库的可用性。因为备份数据库完整地接收来源数据库的变化情况,所以它就是一份来源数据库的复本。它们之间的差别仅在于日志复制与加载过程所产生的时间差。然而,当主服务器因故障停机时,您就可以将备份服务器更改为新的主服务
系统 2019-08-29 22:52:20 2148
【IT168技术文档】本篇来聊聊如何书写漂亮、整洁、优雅的SQL脚本,下面这些是我个人总结、整理出来的。姑且做个抛砖引玉吧,呵呵,欢迎大家一起来讨论。我们首先来看看一段创建数据表的脚本(如下所示),你是否觉得有什么不妥或是不足呢?如果是你,你怎样书写呢?#div_codeimg{border:0px;}
原文:SqlServer查看所有存储过程或视图的位置及内容selecta.name,a.[type],b.[definition]fromsys.all_objectsa,sys.sql_modulesbwherea.is_ms_shipped=0anda.object_id=b.object_idanda.[type]in('P','V','AF')orderbya.[name]asc通过这个sql语句可以查到sqlserver中的视图和存储过程的内容及
系统 2019-08-12 01:33:31 2145
如果你是一个十分忙碌的SQLServerDBA,那么首先你需要注意哪些内容?哪些任务是需要你定期完成,才能确保数据库的健壮?在上一篇文章中,我们带您了解了操作SQLServer的五种错误做法,那么在本文中,我们将向您介绍五种正确的关键做法,相信通过本文,SQLServerDBA可以更好更高效地进行数据库管理。1、做更好的备份一个坚实的灾难恢复计划和颗粒数据恢复计划是让你成为SQL数据库牛人的第一大法宝。重要的一点,就是你需要在完整备份和差异备份之间,频繁地
系统 2019-08-12 01:32:38 2145
/*Author:JiangongSUN*/I'vemadeawebsiteprototypethesedays,I'vefoundtherearesomeusefulinformationtosharewithyouaboutsomeusualproblemsaboutusers.1/Howtocreateauserandgiveitrightstoaccessadatabase2/Onceyouhavecorrectlycreatedyouruser,
系统 2019-08-12 01:51:32 2144
原文:XEvent–SQLServerLog文件对磁盘的写操作大小是多少本篇是上一篇SQLServerLog文件对磁盘的写操作大小是多少的续,使用XEvent收集SQLServerData文件和Log文件的写大小,脚本如下:DECLARE@DBNAMEVARCHAR(256)SET@DBNAME='myDB'DECLARE@sqlcmdNVARCHAR(MAX)='IFEXISTS(SELECT*FROMsys.server_event_sessionsW
系统 2019-08-12 01:33:02 2144
一、深入浅出理解索引结构二、改善SQL语句实现小数据量和海量数据的通用分页显示存储过程建立一个Web应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数
系统 2019-08-12 01:32:55 2144
系统 2019-08-29 22:35:27 2143
SETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGOALTERprocstp_ExportTable@sqlstrnvarchar(4000),--查询语句,如果查询语句中使用了orderby,请加上top100percent,注意,如果导出表/视图,用上面的存储过程@orderstrnvarchar(255),--OrderbyField@pathnvarchar(1000),--文件存放目录@fnamenvarchar(2
系统 2019-08-29 22:22:50 2143
特点:一次查询,数据库只返回一页的数据。而不是取出所有的数据。说明:pagesize:每页显示记录数cureentpage:当前页数select*from(selectTOPpagesize*FROM(SELECTTOPpagesize*cureentpage*fromuser_tableORDERBYidASC)asaSysTableORDERBYidDESC)asbSysTableORDERBYidASC例子说明:假如数据库表如下:user_table
系统 2019-08-12 01:53:42 2143
数据库表A有十万条记录,查询速度本来还可以,但导入一千条数据后,问题出现了。当选择的数据在原十万条记录之间时,速度还是挺快的;但当选择的数据在这一千条数据之间时,速度变得奇慢。凭经验,这是索引碎片问题。检查索引碎片DBCCSHOWCONTIG(表),得到如下结果:DBCCSHOWCONTIG正在扫描'A'表...表:'A'(884198200);索引ID:1,数据库ID:13已执行TABLE级别的扫描。-扫描页数......................
系统 2019-08-12 01:53:40 2143