Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer Windows SQL Server 2017 Enterprise Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Standard Windows

症状

在 Microsoft SQL Server 2016 和2017启动期间,如果用户尝试 若要在启动数据库之前连接到该数据库,用户会话可能会导致 数据库将自动启动。 出现这种情况时,如果数据库包含 FileTable 并启用了 FILESTREAM non_transacted_access ,则数据库级 FileTable 目录在数据库启动后不可访问。 如果您尝试通过文件资源管理器访问文件夹,则可能表明该文件夹是 无效. 从命令提示符运行 "dir" 命令时,它返回 "系统找不到指定的文件"。

此外,你可能会在错误日志中看到指示用户会话触发数据库自动启动的以下错误:

DateTime 登录错误:18456,严重性:14,状态:38。

DateTime 用户 "UserName"的登录登录失败。 原因:无法打开显式指定 的数据库 "DatabaseName"。 [客户端: IPNumber]

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

解决方案

在 SQL Server 的以下累积更新中修复了此问题:

关于 SQL Server 的累积更新:

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

解决方法

此问题的解决方法是禁用并重新启用数据库的 FILESTREAM non_transacted_access。

ALTER DATABASE [DatabaseName] 通过立即回退设置 SINGLE_USER

ALTER DATABASE [DatabaseName] SET FILESTREAM (NON_TRANSACTED_ACCESS = OFF)

ALTER DATABASE [DatabaseName] SET FILESTREAM (NON_TRANSACTED_ACCESS = FULL)

ALTER DATABASE [DatabaseName] 通过立即回退设置 MULTI_USER

参考

了解  terminology Microsoft 用于描述软件更新的术语。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。