July 4 2008

关于SQL语句各子句的优先级问题

PurpleFire @ 15:21

近日,单位的网站新闻系统(Asp+Access)突然出了个小毛病,具体现象如下:在网站首页调用了最新的十篇新闻,但是具体显示出来却是超过了十条,达到十四五条。我查看了一下源代码,SQL语句明明是"Select Top 10 ..."可是选出来的结果不止十条,百思不得其解。

我首先怀疑新闻标题中有非法字符,导致Select语句执行错误,也确实存在一些字符,含有“&”符号,这个符号可能跟Request.QueryString得到的值冲突,我将其改成正常字符,再去执行,现象依然。

我进入数据库(Access),将查询字符串放入数据库中执行,对比查询出来的记录,终于找出了原因。原来是SQL语句中加了“Order by dateandtime desc”子句,查询出来的结果,前八条时 间都不相同,但是后面六条时间却是相同的。因此Top 10子句不知道该如何取舍,于是把那六条都取出来了,就好比,一个班的学生考试成绩排名,除前两名外,有三个人并列第三名,你要取前三名就得取五个人,这 是一个道理,Top 10并没有限死在十条记录,而是取出了最接近十条记录的结果。由此得出结论,Order by子句优先级高于Top XXX子句,后来查询标准T-SQL语法也是如此。看来,有些东西还得细细研究一下。

另一个解决方案,就是在显示的时候在循环里计数,超过十条就跳出循环。之前我用的“While ...Wend”循环,该循环没有跳出语句(除非你用goto,不提倡),所以现在需要修改为“do while ... loop”,跳出语句可以采用“exit do”。

January 7 2008

mysql命令行的基本用法(通用linux和windows)

PurpleFire @ 0:51

老文章了,经常用到的。

阅读全文

March 17 2007

[转载]关于 SQL Server 群集的几个关键技巧

PurpleFire @ 3:24
    概览: 在群集上运行 SQL Server 硬件和软件要求 将一个节点加入群集...
November 2 2006

小论数据库的优化

PurpleFire @ 2:37
与没有数据库的网站相比,数据库的存取会降低你的系统性能。但是大多数情况下,网站和数据库有密不可分的关
系,正是数据库给站点提供了大容量、多样性、个性化等特色,并实现了很多特殊的功能。
November 2 2006

SQL Server的用户及权限

PurpleFire @ 2:19
SQL Server中有一些固定的服务器和数据库角色,这里列出它们的描述
一、固定服务器角色 描述
sysadmin 可以在 SQL Server 中执行任何活动
serveradmin 可以设置服务器范围的配置选项 关闭服务器
setupadmin 可以管理链接服务器和启动过程
securityadmin 可以管理登录和 CREATE DATABASE 权限 还可以读取错误日志和更改密码
processadmin 可以管理在 SQL Server 中运行的进程
dbcreator 可以创建 更改和除去数据库
......
分页:«1»