某某茶叶有限公司欢迎您!
金沙棋牌在线 > 必赢棋牌官网 > sql随机抽取数据库记录

sql随机抽取数据库记录

时间:2020-04-28 11:11

今天花点时间在SQL SERVER 2008中运行试试。之前并没怎么注意SQL2008的语法与之前版本的不同,因为常用的select等语句都一样,一直以为2008应该与2005的版本几乎无差。不料这一试,果然试出了问题,这才发现,以前从书本上见过的backup语句和dump语句已经在2008里面消失了

Mysql:select * from [tablename] order by rand() limit 10 

废话不多说,把收录的语句及备注贴上来,便于以后查询使用~必赢棋牌官网,~

Sql Server:select top 5 * from [tablename] order by NEWID() 

1、 数据库教程备份操作:

Access:select top 5 * from [tablename] order by rnd(id),其中id是自动编号的字段。在vb+access可以随机,但在asp里却没法得到随机的结果。可能是asp有缓存的结果吧,因此,需要修改一下这条语句,改为下面的方式: 
   randomize
    select top 5 * from [tablename] order by rnd(-(id+rnd()))

declare @sql varchar(8000)

set @sql='backup database smallerp to disk=''d:'+RTRIM(CONVERT(varchar,getdate(),112))+'.bak'''

exec(@sql);

2、 删除5天前的备份文件:

declare @sql varchar(8000)

set @sql='del d:'+RTRIM(CONVERT(varchar,getdate()-5,112))+'.bak'''

exec master..xp_cmdshell @sql;

3、 收缩数据库语句:

dump transaction smallerp with no_log;(备注:这句话中会提示transaction附近有语法错误,原来在SQL2008中已经不再使用此法来收缩数据库了。而使用:alter, 使用方法如下:alter database smallerp set recovery simple

alter database smallerp set recovery full

dbcc shrinkdatabase(smallerp,0);)

backup log smallerp with no_log;(备注:这句话执行的时候会报错:此语句不支持一个或多个选项(no_log),原因也是因为SQL2008已经不再支持这种写法了。)

4、 查看数据库里活动用户和进程信息:

sp_who 'active';(备注:如果只是这么写的话会提示sp_who附近有语法错误,但执行的时候可以查到数据,如果在前面加一个exec,则不再提示错误。且150的进程号 为SQL SERVER系统内部用的,只有大于50的进程号才是用户的连接进程。spid是进程号,dbid是数据库编号,objid是数据对象编号)

5、 查看数据库里用户和进程信息:

Exec sp_who;

6、 查看数据库里的锁情况:

Exec sp_lock;

7、 分析SQL SERVER里sql语句的方法:

set statistics time {on | off}(写语句的时候只需要写明是on或者off即可)

set statistics io {on | off}