server2005下复制一个数据库,结果最后一步出错,复制没成功反而导致数据库打不开了,
名称后出现"单个用户",估计是进行复制的时候自动将其改为了单用户模式,可通过执行如下语句恢复多用户模式。
原理是先kill占用了数据库的那个进程,然后设置数据库为多用户模式。
USE
master
GO
DECLARE
@SQL
VARCHAR(MAX)
SET
@SQL=''
SELECT
@SQL=@SQL+'
KILL
'+RTRIM(SPID)
FROM
mastersysprocesses
WHERE
dbid=DB_ID('数据库名')
EXEC(@SQL)
GO
ALTER
DATABASE
数据库名
SET
MULTI_USER
即使设置此选项的用户已注销,数据库仍保持单用户模式。这时,其他用户(但只能是一个)可以连接到数据库。将数据库设置为单用户模式
1.
在对象资源管理器中,连接到 SQL Server 数据库引擎实例,然后展开该实例。
2.
3.
在“数据库属性”对话框中,单击“选项”页。
4.
在“限制访问”选项中,选择“单用户”。
5.
如果其他用户连接到数据库,将出现“打开的连接”消息。若要更改属性并关闭所有其他连接,请单击“是”。
还可以使用此过程将数据库设置为“多用户”访问或“限制”访问。有关“限制访问”选项的详细信息,请参阅数据库属性(“选项”页)。
1.
在对象资源管理器中,连接到 SQL Server 数据库引擎实例,然后展开该实例。
2.
右键单击要更改的数据库,再单击“属性”。
3.
在“数据库属性”对话框中,单击“选项”页。
4.
在“限制访问”选项中,选择“单用户”。
5.
如果其他用户连接到数据库,将出现“打开的连接”消息。若要更改属性并关闭所有其他连接,请单击“是”。
还可以使用此过程将数据库设置为“多用户”访问或“限制”访问。有关“限制访问”选项的详细信息,请参阅数据库属性(“选项”页)。
请参阅
其他资源
ALTER DATABASE (Transact-SQL)
http://msdn.microsoft.com/zh-cn/library/ms174269.aspx
请参考:http://blog.csdn.net/yubofighting/article/details/6640739
两种方法:
一、sqlservr.exe -m -c
1、 如图所示,关闭sqlserver(实例)服务
2、 运行---->cmd--->cd C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe –m
注:C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe -m这个路径按照自己的sql server安装路径自行调整
3、 经过上面两步就设置好的单用户登陆,你既可以使用企业管理器登陆,又可以通过在运行框中执行sqlcmd.exe运行doc下的命令
二、在sql server2005的配置管理工具中设置
1、如图打开配置管理工具,在sql server(实例名称)上右键打开属性,在高级的启动参数前加上-m 别忘了‘‘因为参数是通过’‘来分隔的
2、设置完成后重启sql server 服务即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)