问题描述:
EXEC sp_dboption 'OldDbName', 'Single User', 'TRUE'
EXEC sp_renamedb 'OldDbName', 'NewDbName'
EXEC sp_dboption 'NewDbName', 'Single User', 'FALSE'
这么写对不对啊?那个'Single User'要不要改的
解析:
EXEC sp_dboption 'OldDbName', 'Single User', 'TRUE'
EXEC sp_dboption 'NewDbName', 'Single User', 'FALSE'
这两条语句的意思是将数据库转换为单用户模式和非单用户模式,这样可以避免在重命名数据库的时候有其它用户对数据库进行 *** 作,造成死锁。
所以楼主问问的要不要改的回答应该是否定的,不能改,这是设置数据库选项的关键字。
其实在修改数据库名称之前,如果有用户连接到数据库的话会造成数据库重命名失败,可以先执行
select spid
from master.dbo.sysprocesses
where dbid=db_id('OldDbName')
结果集中显示的是当前连接到数据库OldDbName的连接
比如结果是
79
81
当然,实际值应该不是这两个
然后执行
kill 79
kill 81
关闭已建立的连接,之后再执行
EXEC sp_dboption 'OldDbName', 'Single User', 'TRUE'
EXEC sp_renamedb 'OldDbName', 'NewDbName'
EXEC sp_dboption 'NewDbName', 'Single User', 'FALSE'
上述语句最好都在master数据库中执行。
一、未使用的数据库 改名方法如下:1、未使用的数据库改名比较方便,找到你要更改的数据库,右键选择【重命名】。
2、然后将你想要更改的名字写好,然后点击一下旁边的空白栏。
3、然后你就发现数据库的名称已经改好了。
二、使用中的数据库改名方法如下:
1、使用中的数据库你在使用这种方法显然是不合适,你用这种方法更改数据库的名字之后会提示你无法重命名数据库。
2、这时还是同样的右键你要改名的数据库,选择【属性】按钮。
3、然后在数据库属性左侧菜单栏中选择【选项】按钮。
4、然后在【状态】栏目下有一项限制访问选项,默认的是MULTI_USER,意为多用户模式,然后你将其更改为【SINGLE_USER】单用户模式,点击确定即可。
5、然后你在使用上面的方法更改数据库的名称会发现数据库改名成功了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)