——————————————————————————收缩数据库和数据文件————————————————————
/*使用DBCC SHRINKDATABASE 收缩数据库
收缩WebShop数据库,剩余可用空间10%*/
DBCC SHRINKDATABASE(WebShop,10)
/*使用DBCC SHRINKFILE收缩数据文件
将数据库WebShop中名为DataFile1的数据文件收缩到10MB*/
USE WebShop
GO
DBCC SHRINKFILE(DataFile1,10)
GO
———————————————————移动数据库文件———————————————————————————
/*通过在 ALTER DATABASE语句的FILENAME子句中指定新文件的位置,可以移动系统数据库文件和自定义数据库文件,但是资源数据库文件除外。 (资源数据库移动或者重命名,SQLserver无法启动)
数据、日志、全文目录文件也可以通过此方法进行移动,此方法在下面情况下可用1)故障恢复,例如因为硬件故障,数据库处于可疑模式或者被关闭;2)预先安排的重定位;3)为预定的磁盘维护操作而进行的重定位。*/
--数据库文件的逻辑名称才可以运行 ALTER DATABASE语句,要获取逻辑名称可查询sys.master_files 目录视图下的name列
--确定tempdb数据库的逻辑文件名称以及在磁盘上的当前位置--
SELECT name,physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
GO
--使用ALTER DATABASE 更改每个文件的位置--
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev,FILENAME = 'D:/DATA/tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog,FILENAME = 'D:/DATA/templog.ldf');
GO
--停止并且重启SQLserver--
--验证文件更改--
SELECT name,physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
/*每次启动SQLserver服务时都会重建tempdb,因此不需要从物理意义上移动数据和日志文件,在重启服务是会创建这些文件。重启后,tempdb才继续在当前位置发挥作用*/
—————————————————————————更改数据库所有者———————————————————————————————
使用存储过程sp_changedbwner来实现