若要删除数据库,请使用 DROP DATABASE。
若要减小数据库的大小,请使用 DBCC SHRINKDATABASE。
ALTER DATABASE 语句必须在自动提交模式(默认事务管理模式)下运行,且不允许用于显式或隐式事务中。有关详细信息,请参阅自动提交事务。
在 SQL Server 2005 或更高版本中,对数据库文件状态(例如,联机或脱机)的维护是独立于数据库状态的。有关详细信息,请参阅文件状态。文件组中文件的状态决定整个文件组的可用性。文件组中的所有文件都必须联机,文件组才可用。如果文件组脱机,则使用 SQL 语句访问文件组的所有尝试都会失败并报告错误。在为 SELECT 语句生成查询计划时,查询优化器会避免驻留在脱机文件组中的非聚集索引和索引视图。这样,这些语句就会成功。但是,如果脱机文件组包含目标表的堆或聚集索引,SELECT 语句将失败。此外,如果 INSERT、UPDATE 或 DELETE 语句修改的表的索引包含在脱机文件组中,这些语句将失败。
当数据库处于 RESTORING 状态时,多数 ALTER DATABASE 语句都将失败。设置数据库镜像选项除外。在活动还原操作期间,或者当数据库还原操作或日志文件还原操作由于备份文件损坏而失败时,数据库可以处于 RESTORING 状态。有关详细信息,请参阅应对由损坏的备份导致的 SQL Server 还原错误。
通过设置以下选项之一来清除 SQL Server 实例的计划缓存:
|
OFFLINE
|
READ_WRITE
|
|
ONLINE
|
MODIFY FILEGROUP DEFAULT
|
|
MODIFY_NAME
|
MODIFY FILEGROUP READ_WRITE
|
|
COLLATE
|
MODIFY FILEGROUP READ_ONLY
|
|
READ_ONLY
|
|
清除计划缓存将导致对所有后续执行计划进行重新编译,并可能导致查询性能暂时性地突然降低。对于计划缓存中每个已清除的缓存存储区,SQL Server 错误日志包含以下信息性消息:“由于某些数据库维护或重新配置操作,SQL Server 经历了 '%s' 缓存存储区(计划缓存的一部分)的 %d 次刷新”。只要每五分钟刷新一次缓存,就会在此时间间隔内记录一次此消息。
更改数据库排序规则
在对数据库应用不同排序规则之前,请确保已满足下列条件:
-
您是当前数据库的唯一用户。
-
没有依赖数据库排序规则的架构绑定对象。
如果数据库中存在下列依赖于数据库排序规则的对象,则 ALTER DATABASE database_name COLLATE 语句将失败。SQL Server 将对每个阻塞 ALTER 操作的对象返回一条错误消息:
-
通过 SCHEMABINDING 创建的用户定义函数和视图。
-
计算列。
-
CHECK 约束。
-
表值函数返回包含字符列的表,这些列继承了默认的数据库排序规则。
数据库排序规则更改时,非绑定到架构的实体的依赖关系信息将自动更新。有关详细信息,请参阅了解 SQL 依赖关系。
-
改变数据库的排序规则不会在任何数据对象的系统名称中产生重复名称。
如果改变排序规则后出现重复的名称,则下列命名空间可能导致改变数据库排序规则的操作失败:
-
对象名,如过程、表、触发器或视图。
-
架构名称
-
主体,例如组、角色或用户。
-
标量类型名,如系统和用户定义类型。
-
全文目录名称。
-
对象内的列名或参数名。
-
表范围内的索引名。
由新的排序规则产生的重复名称将导致更改操作失败,SQL Server 将返回错误消息,指出重复名称所在的命名空间。
查看数据库信息
可以使用目录视图、系统函数和系统存储过程返回有关数据库、文件和文件组的信息。有关详细信息,请参阅查看数据库元数据。