SQLserver2数据库操作

——————————————————————————收缩数据库和数据文件————————————————————

/*使用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来实现

原文地址:https://www.cnblogs.com/jaci/p/11273182.html