积极答复者
有没有使数据库的某个文件组在线的语句

问题
-
我使用下面的语句使SSS数据库的某个文件组离线,但是使用online参数报错
怎么才能使文件组重新上线呢?这个sss数据库是我自己个人电脑的测试库
消息 155,级别 15,状态 1,第 1 行
'online' 不是可以识别的 CREATE/ALTER DATABASE 选项。ALTER DATABASE [sss] MODIFY FILE(NAME = FG_ClassifyResult_ClassId_01_data,offline)
ALTER DATABASE [sss] MODIFY FILE(NAME = FG_ClassifyResult_ClassId_01_data,online)
答案
-
http://msdn.microsoft.com/zh-cn/library/bb522469.aspx
OFFLINE<sentencetext xmlns="http://www.w3.org/1999/xhtml">将文件设置为脱机并使文件组中的所有对象都不可访问。</sentencetext>
注意
<sentencetext xmlns="http://www.w3.org/1999/xhtml">仅当文件已损坏但可以还原时,才能使用该选项。</sentencetext> <sentencetext xmlns="http://www.w3.org/1999/xhtml">对于设置为 OFFLINE 的文件,只有通过从备份中还原该文件,才能将其设置为联机。</sentencetext> RESTORE (Transact-SQL)。</sentencetext>
- 已标记为答案 Steven.桦仔 2014年3月13日 6:07
全部回复
-
http://msdn.microsoft.com/zh-cn/library/bb522469.aspx
OFFLINE<sentencetext xmlns="http://www.w3.org/1999/xhtml">将文件设置为脱机并使文件组中的所有对象都不可访问。</sentencetext>
注意
<sentencetext xmlns="http://www.w3.org/1999/xhtml">仅当文件已损坏但可以还原时,才能使用该选项。</sentencetext> <sentencetext xmlns="http://www.w3.org/1999/xhtml">对于设置为 OFFLINE 的文件,只有通过从备份中还原该文件,才能将其设置为联机。</sentencetext> RESTORE (Transact-SQL)。</sentencetext>
- 已标记为答案 Steven.桦仔 2014年3月13日 6:07
-
你可以试试使用古老的文件替换大法
1. 将数据库分离 ( sp_detach_db 'xx')
2. 将数据库的所有文件移个位置
3. 按照原来的文件颁创建一个同名空库
4. 将空库 OFFLINE ( alter database xx set offline )
5. 将步骤2移走的文件移回来,替换掉步骤3创建的空库产生的对应文件
6. 将数据库 online ( alter database xx set online ), 如果不能 online, 可以试试先设置为 emergency 状态
最后用这种方法搞定了
RESTORE DATABASE [sss] FILE='FG_ClassifyResult_ClassId_01_data' WITH RECOVERY
--文件组重新上线,ClassifyResult_T表才能访问