日期:2014-05-16  浏览次数:20730 次

SQL SERVER 数据库状态(脱机,联机,可疑)及SQL设置语句详解

首先我们应该知道数据库总是处于一个特定的状态中,下面先来了解一下数据库的常见的三种状态:
1,脱机:我们可以在Microsoft?SQL?Server?Management中看到该数据库,但该数据库名称旁边有"脱机"的字样,说明该数据库现在虽然存在于数据库引擎实例中,但是不可以执行任何有效的数据操作,比如新增,修改,删除等,这就是脱机状态。

2,联机:该状态为数据库正常状态,也就是我们常看到的数据库的状态,该状态下的数据库处于可操作状态,可以对数据库进行任何权限内的操作。

3,可疑:和"脱机"状态一样,我们可以在Microsoft?SQL?Server?Management中看到该数据库,但该数据库名称旁边有"可疑"的字样,这说明至少主文件组可疑或可能已损坏。

如何利用SQL命令查看数据库状态
可利用sys.databases表.在该表的state_desc列中标记了数据库的状态,sql语句如下:

select?name,state_desc?from?sys.databases



可视化设置数据库状态
设置为脱机:在Microsoft?SQL?SERVER?Management中打开该数据库,在该数据库上右击,在右键菜单选择"任务"-?>"脱机"

设置为联机:如果数据库的现在状态为脱机,则可在Microsoft?SQL?SERVER?Management中打开该数据库,在该数据库上右击,在右键菜单选择"任务"-?>"联机"

可疑:该状态为数据库自动测试数据文件的状态。

利用SQL命令设置数据库状态
设置为脱机的SQL语句如下:

EXEC?sp_dboption?'数据库名称',?'offline',?'TRUE'


或者

ALTER?DATABASE?数据库名称
SET?OFFLINE



设置为联机的SQL语句如下:

ALTER?DATABASE?数据库名称
SET?ONLINE



说明:
·虽然SQL?SERVER数据库的脱机与联机是两个很简单的概念,但是它却能在细微之处反映我们的开发人员对数据库的基础知识的了解程度,所以还是希望大家能够清楚的了解数据库的状态及改变数据库状态的SQL命令。

·如果我们在复制数据库的源文件的时候提示该文件正在使用,我们可以先设置数据库为脱机再复制。

?

---------------------------------------------------------------------------------------

http://hi.baidu.com/topufo/item/80ca3c76ba5ec1356cc37c43

MS?sql的脱机联机执行语句.

EXECUTE?sp_dboption?'testdb','offline','true'?--先脱机
EXECUTE?sp_dboption?'testdb','offline','false'?--再联机