SQL Server 2005系统数据库master重建、修复(转)
在用SQL Server 2005进行一项测试:如何一次删除所有用户数据库时,没注意到当前数据库是master,结果,把这里的一些表都给删除了,从而,数据库引擎可以正常使用,但如果右击任一数据库,都会出现查找master里的一个表的操作(对象名 master.dbo.spt_values' 无效。 (Microsoft SQL Server,错误: 208)),而这个表被我删除了,所以就运行不成功了,想压缩数据库还行用SQL语句,很麻烦。
在网上找的大都是SQL Server 2000 master数据库重建帖子,关于SQL Server 2005 重建master的帖子基本上都是只有提问的,没有回答的,于是在国外网站上搜索了下,发现一个,但也很不好使,后来顺着他的关键词:rebuid sql Server 2005 master找到了微软的网站,没想到微软早就解决这问题了,按他说的做了一遍,OK,成功,在写这文章时又把他的MSDN地址改了下,看看有没有中文版的,没想到还真有,可怜的搜索引擎呀,这么好的东西我怎么在baidu及google里都找不到呢。
虽然问题是解决了,不过还有一个问题,就是:重建后相当于数据库重新安装了一次,所有的登录用户,数据库都没了(听说数据都在master里,master被重建了里面的数据库相关信息当然没了。数据库文件还在,没被删除。),所以重建或者说修复好后,你还得把每个数据库都附加进来,并建相关用户。
微软官方解决方法:
start /wait <CD or DVD Drive>\setup.exe /qn INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=<NewStrongPassword>
举例:
start /wait L:\Servers\setup.exe /qn INSTANCENAME="MSSQLSERVER" REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=www_yongfa365_com