修改 SQL Server 2012 共享功能目录
问题描述:因为安装了 Visual Studio 导致安装数据库共享目录变成灰色,不能修改。
修改方法:通过安装包正常安装,【准备安装】可以找到【配置文件路径】找到 ConfigurationFile.ini 文件路径,打开 ConfigurationFile.ini 文件直接修改配置文件内容。例如:C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20150306_022030\ConfigurationFile.ini
解决问题:减少C盘的空间消耗。
解决 System.Data.SqlClient.SqlError 错误
问题一描述:SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样;
问题二描述:在对 SQL Server 数据库进行还原时,提示:System.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占访问权。(Microsoft.SqlServer.Smo)。出现此问题的原因是在还原数据库时,有其他用户正在使用数据库。还原数据库要求数据库工作在单用户模式。通常就是DBA在操作时,不允许其他用户连接数据库。
问题一解决办法:
右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -> 选择Multiple -> 确定。
-
- ---设置数据库为多用户模式
- USE MASTER
- GO
- ALTER DATABASE ESApp1 SET MULTI_USER WITH ROLLBACK IMMEDIATE;
- GO
问题二解决办法:
方法一(最方便):右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -> 选择Single-> 确定,然后还原。 设置单用户数据库必须要超级用户。
- ---设置数据库为单用户模式
- USE MASTER
- GO
- ALTER DATABASE ESApp1 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
- GO
方法二(最直接):断开数据库连接
方法三(最暴力):注销/重启数据库服务器
方法四(最麻烦):写代码修改数据库相关属性,虽然麻烦,有的时候还是要用到,那就用到的时候再研究。
方法五(终级解决方案):
关键SQL语句:
ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE
还原之后再 :
ALTER database [datebase] set online
方法六:使用T-Sql的方式,执行备份数据库操作。
- use master
- go
- ---声明变量(备份ESApp1数据库)
- declare @dbName nvarchar(max)='ESApp1';
- declare @dbFullName nvarchar(max)='E:\NewWork\Web\backup\test1.bak';
- --1.1修改为单用模式
- exec(N'ALTER DATABASE '+@dbName+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');
- --1.2结束链接进程
- DECLARE @kid varchar(max)
- SET @kid=''
- SELECT @kid=@kid+'KILL '+CAST(spid as Varchar(10)) FROM master..sysprocesses
- WHERE dbid=DB_ID(@dbName) ;
- EXEC(@kid) ;
- --2.执行还原语句
- restore database @dbName from disk=@dbFullName
- with replace --覆盖现有的数据库
- --3.重置数据库为多用户模式
- exec(N'ALTER DATABASE '+@dbName+' SET MULTI_USER WITH ROLLBACK IMMEDIATE');