消息5061,ALTER DATABASE 失败

本文解决在使用ALTERDATABASE时遇到的数据库锁定错误,通过使用SQL指令获取当前会话并终止相关进程,从而成功执行数据库操作。

在ALTER DATABASE时,突然遇到如下错误:

消息5601,级别16,状态1,第1行,由于无法在数据库 'TestNonContainedDB' 上放置锁,ALTER DATABASE 失败。请稍后再试。消息5069,级别16,状态1,第一行ALTER DATABASE 语句失败。

对应的英文信息是:Msg 5061, Level 16, State 1, Line 1 ALTER DATABASE failed because a lock could not be placed on database 'TestNonContainedDB'. Try again later. Msg 5069, Level 16, State 1, Line 1 ALTER DATABASE statement failed.

 

Solution:

通过如下指令,获取当前DB的Session,然后将对应的SPID Kill掉,之后再执行ALTER DATABASE 语句。

EXEC sp_who2
KILL <SPID>

 


USE [master] GO /****** Object: Database [studentdb] Script Date: 2025/12/15 11:42:02 ******/ CREATE DATABASE [studentdb] CONTAINMENT = NONE ON PRIMARY ( NAME = N'studentdb', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\studentdb.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB ) LOG ON ( NAME = N'studentdb_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\studentdb_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB ) WITH CATALOG_COLLATION = DATABASE_DEFAULT GO ALTER DATABASE [studentdb] SET COMPATIBILITY_LEVEL = 150 GO IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) begin EXEC [studentdb].[dbo].[sp_fulltext_database] @action = 'enable' end GO ALTER DATABASE [studentdb] SET ANSI_NULL_DEFAULT OFF GO ALTER DATABASE [studentdb] SET ANSI_NULLS OFF GO ALTER DATABASE [studentdb] SET ANSI_PADDING OFF GO ALTER DATABASE [studentdb] SET ANSI_WARNINGS OFF GO ALTER DATABASE [studentdb] SET ARITHABORT OFF GO ALTER DATABASE [studentdb] SET AUTO_CLOSE OFF GO ALTER DATABASE [studentdb] SET AUTO_SHRINK OFF GO ALTER DATABASE [studentdb] SET AUTO_UPDATE_STATISTICS ON GO ALTER DATABASE [studentdb] SET CURSOR_CLOSE_ON_COMMIT OFF GO ALTER DATABASE [studentdb] SET CURSOR_DEFAULT GLOBAL GO ALTER DATABASE [studentdb] SET CONCAT_NULL_YIELDS_NULL OFF GO ALTER DATABASE [studentdb] SET NUMERIC_ROUNDABORT OFF GO ALTER DATABASE [studentdb] SET QUOTED_IDENTIFIER OFF GO ALTER DATABASE [studentdb] SET RECURSIVE_TRIGGERS OFF GO ALTER DATABASE [studentdb] SET ENABLE_BROKER GO ALTER DATABASE [studentdb] SET AUTO_UPDATE_STATISTICS_ASYNC OFF GO ALTER DATABASE [studentdb] SET DATE_CORRELATION_OPTIMIZATION OFF GO ALTER DATABASE [studentdb] SET TRUSTWORTHY OFF GO ALTER DATABASE [studentdb] SET ALLOW_SNAPSHOT_ISOLATION OFF GO ALTER DATABASE [studentdb] SET PARAMETERIZATION SIMPLE GO ALTER DATABASE [studentdb] SET READ_COMMITTED_SNAPSHOT OFF GO ALTER DATABASE [studentdb] SET HONOR_BROKER_PRIORITY OFF GO ALTER DATABASE [studentdb] SET RECOVERY FULL GO ALTER DATABASE [studentdb] SET MULTI_USER GO ALTER DATABASE [studentdb] SET PAGE_VERIFY CHECKSUM GO ALTER DATABASE [studentdb] SET DB_CHAINING OFF GO ALTER DATABASE [studentdb] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) GO ALTER DATABASE [studentdb] SET TARGET_RECOVERY_TIME = 60 SECONDS GO ALTER DATABASE [studentdb] SET DELAYED_DURABILITY = DISABLED GO ALTER DATABASE [studentdb] SET ACCELERATED_DATABASE_RECOVERY = OFF GO EXEC sys.sp_db_vardecimal_storage_format N'studentdb', N'ON' GO ALTER DATABASE [studentdb] SET QUERY_STORE = OFF GO ALTER DATABASE [studentdb] SET READ_WRITE GO 消息 5133,级别 16,状态 1,第 4 行 对文件“C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\studentdb.mdf”的目录查找失败,出现操作系统错误 3(系统找不到指定的路径。)。 消息 1802,级别 16,状态 1,第 4 行 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。 消息 5011,级别 14,状态 5,第 12 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 12 行 ALTER DATABASE 语句失败消息 911,级别 16,状态 4,第 16 行 数据库 'studentdb' 不存在。请确保正确地输入了该名称。 消息 5011,级别 14,状态 5,第 19 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 19 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 21 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 21 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 23 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 23 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 25 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 25 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 27 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 27 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 29 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 29 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 31 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 31 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 33 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 33 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 35 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 35 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 37 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 37 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 39 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 39 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 41 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 41 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 43 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 43 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 45 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 45 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 47 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 47 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 49 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 49 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 51 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 51 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 53 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 53 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 55 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 55 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 57 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 57 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 59 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 59 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 61 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 61 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 63 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 63 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 65 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 65 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 67 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 67 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 69 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 69 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 71 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 71 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 73 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 73 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 75 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 75 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 77 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 77 行 ALTER DATABASE 语句失败消息 15010,级别 16,状态 1,过程 sys.sp_db_vardecimal_storage_format,行 29 [批起始行 78] 数据库 'studentdb' 不存在。请提供有效的数据库名称。若要查看可用数据库,请使用 sys.databases。 消息 5011,级别 14,状态 5,第 81 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 81 行 ALTER DATABASE 语句失败消息 5011,级别 14,状态 5,第 83 行 用户没有更改数据库 'studentdb' 的权限,该数据库不存在,或数据库未处于允许访问检查的状态。 消息 5069,级别 16,状态 1,第 83 行 ALTER DATABASE 语句失败。 完成时间: 2025-12-15T13:52:38.5475121+08:00
最新发布
12-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值