文章分类 - 數據庫管理
摘要:今天学习了sql server 2005新增的几个函数,分别是row_number(),rank,DENSE_RANK,ntile,下面以例子 分别简单讲解之 1.row_number 先来点数据,先建个表 SET NOCOUNT ON CREATE TABLE Person( FirstName VARCHAR(10), Age INT, Gender CHAR(1)) INSERT...
阅读全文
摘要:确实是一篇经典的文章,看了之后很受启发.不过要是能稍微修改以下地方那就更完美了!1. 行列转换--普通SQL:declare @sql varchar(4000)set @sql = 'select Name'select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'fro...
阅读全文
摘要:说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 11 说明:拷贝表(拷贝数据,源表名:a 目标表名:b)insert into b(a, b, c) select d,e,f from b; 说明:显示文章、提交人和最后回复时间select a.title,a.username,b.adddate from table a,(selec...
阅读全文
摘要:在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护困难和大SP逻辑的难以理解,另外如果数据库的数据量大或者项目对SP的性能要求很,就会遇到优化的问题,否则速度有可能很慢,经过亲身经验,一个经过优化过的SP要比一个性能差的SP的效率甚至高几百倍。 内容: 1、开发人员如果用到其他库的Ta...
阅读全文
摘要:对于数据库死锁,通常可以通过TRACE FLAG 1204、1205、1206,检查ERRORLOG里面的输出,和分析SQLTRACE的执行上下文判断死锁问题的来由。 TRACEON函数的第三个参数设置为-1,表示不单单针对当前connection,而是针对所有包括未来建立的connection。这样,才够完全,否则只是监视当前已经建立的数据库连接了。 执行下面的话可以把死锁记录到Erro...
阅读全文
摘要:/*--处理死锁 查看当前进程,或死锁进程,并能自动杀掉死进程 因为是针对死的,所以如果有死锁进程,只能查看死锁进程 当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程 --邹建 2004.4--*/ /*--调用示例 exec p_lockinfo--*/create proc p_lockinfo@kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉,...
阅读全文
摘要:从宝玉的Blog上看到了名为《Sql2005带来的分页便利》的短文,文章很短,但是却让我欣喜万分,MS终于在SQL Server上给解决了大量数据的分页问题了。以前我经常羡慕MySql用户可以使用很简单的办法来处理分页问题,而今天我们在Sql2005上也同样可以很方便的处理分页问题了。 select threadid from (select threadid, ROW_NUMBER() OVER...
阅读全文
摘要:sqlserver2005现在的版本比较多,有express 版的,有企业开发版等,我目前用的express版的,占用系统资源还是很少的,不象网上所说的,一运行开发版,就吃掉400多M内存,对于我们绝大多数人来说,为了看看sqlserver2005的新特性,没有必要装什么正式开发版,Express版的小,而它的功能够个人用了。 装完 sqlserver2005(Express版),为了便...
阅读全文
摘要:在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时间在1分钟以上。如果在表的某个字段上...
阅读全文
摘要:/* 经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下: exec GetRecordFromPage news,newsid,10,100000 news 为 表名, newsid 为关键字段, 使用时请先对 newsid 建立索引。*//* 函数名称: GetRecor...
阅读全文
摘要:CREATE procedure main_table_pwqzc(@pagesize int,@pageindex int,@docount bit,@this_id)asif(@docount=1)beginselect count(id) from luntan where this_id=@this_idendelsebegindeclare @indextable table(id in...
阅读全文
摘要:对于服务器数据的备份是比较麻烦的事情,如果每天或者经常要手工去备份自然是很痛苦的事情。这里我介绍一种通过sql server的作业调度来建立自动备份的方法:1、进入企业管理器中->管理->sql server代理->作业;2、新建作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限;3、点击步骤标签,进入步骤面板。新建步骤,步骤名可以随便...
阅读全文
摘要:在.NET中要访问MySql,我采用的是MySql官方提供的.NET connector,此驱动只需要下载即可使用:http://dev.mysql.com/downloads/connector/net/1.0.html在使用中积累了几点经验:1)使用Parameter参数形式提交Command时必须要把"@"号换成"?"号,这一点让我困惑了一天,只是不明白MySQL为何要搞特殊呢,象MS、OD...
阅读全文