数据库日常维护常用的脚本部分收录

发表于:2011-6-20 09:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:迷途的猫(cnblogs)    来源:51Testing软件测试网采编

  有些数据库语句可能平时用得不多,所以使用的时候总是难免上网查询,略嫌麻烦,今日在CSDN论坛看到有贴收录这些语句,就顺手牵羊copy了一份,本想copy了就结束了,但和部分朋友一样,真正用到它们的时候有时会发现难免会出错,于是,择日不如撞日,就在今天花点时间在SQL SERVER 2008中运行试试。之前并没怎么注意SQL2008的语法与之前版本的不同,因为常用的select等语句都一样,一直以为2008应该与2005的版本几乎无差。不料这一试,果然试出了问题,这才发现,以前从书本上见过的backup语句和dump语句已经在2008里面消失了……

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

  1、数据库备份操作:

  1. declare @sql varchar(8000)  
  2. set @sql='backup database smallerp to disk=''d:\'+RTRIM(CONVERT(varchar,getdate(),112))+'.bak'''  
  3. exec(@sql);
  4.    (备注:引号不可缺少任意一个,否则会报错)

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

  1. declare @sql varchar(8000)  
  2. set @sql='del d:\'+RTRIM(CONVERT(varchar,getdate()-5,112))+'.bak'''  
  3. exec master..xp_cmdshell @sql;
  4.    (备注:xp_cndshell默认该组件会被阻止,需要先启用它才可正常操作:使用如下语句将其启用EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;)

  3、收缩数据库语句:

  1. dump  transaction smallerp with no_log;  
  2. (备注:这句话中会提示transaction附近有语法错误,原来在SQL2008中已经不再使用此法来收缩数据库了。而使用:alter,使用方法如下:  
  3. alter database smallerp set recovery simple  
  4. dbcc shrinkdatabase(smallerp,0);)  
  5. backup log smallerp with no_log;  
  6. (备注:这句话执行的时候会报错:此语句不支持一个或多个选项(no_log),原因也是因为SQL2008已经不再支持这种写法了。)

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

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

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

Exec sp_who;

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号