Sqlserver.exe已停止工作

自从安装Visual Studio 2015 Update 3以来,我遇到了以下错误。 它只在Visual Studio 2015打开时发生,并且无论我是否以本地管理员身份运行都会发生。 它很频繁,很刺激,但似乎并没有影响我正在做的任何工作。 代码,服务器资源管理器,VS所有工作正常,弹出错误消息,Microsoft错误报告占用了我的CPU长时间50%的使用率。

有谁知道如何解决这一问题? 我不想花几个小时试图解决它。

错误信息:

在此处输入图像描述

在我的应用程序事件日志中,我看到以下内容

故障桶126419871336,类型5事件名称:SQLException64响应:不可用Cab Id:0

问题签名:P1:sqlservr.exe P2:0.0.0.0 P3:0000000000000000 P4:sqlmin.dll P5:2015.130.1601.5 P6:000000005724AE98 P7:-1073741819 P8:0000000000064BB2 P9:00000001D8D946AB P10:

附加文件:\?\ C:\ Users \ m_f \ AppData \ Local \ Microsoft \ Microsoft SQL Server Local DB \ Instances \ ProjectsV13 \ SQLDump0100.mdmp \?\ C:\ Users \ m_f \ AppData \ Local \ Microsoft \ Microsoft SQL服务器本地DB \ Instances \ ProjectsV13 \ SQLDump0100.txt \?\ C:\ Users \ m_f \ AppData \ Local \ Microsoft \ Microsoft SQL Server本地DB \ Instances \ ProjectsV13 \ SQLDump0100.log \?\ C:\ ProgramData \ Microsoft \的Windows \ WER \ TEMP \ WERE021.tmp.WERInternalMetadata.xml

这些文件可以在这里找到:C:\ ProgramData \ Microsoft \ Windows \ WER \ ReportArchive \ Critical_sqlservr.exe_7113a987f49ac660cb71f97cb4183ea19827ef0_00000000_0bd7e949

分析符号:重新检查解决方案:0报告ID:3e38065a-5d62-11e6-89a7-97ade4354400报告状态:1 Hashed bucket:ff995718a61d049a3664662b84518798

并在SQL日志中:

过程49生成致命exceptionc0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Server正在终止此过程。

似乎也是一个已知的问题 – 请参阅此Microsoft KB文章 ,说它已被修补。

我的系统在操作系统,补丁,安全更新,Visual Studio更新等方面尽可能地保持最新,但我仍然看到了这个问题。 希望有人之前已经解决了这个问题,并且可以为我节省一些试图让它排序的挫败感!

谢谢

在微软的MSDN论坛上有一个关于这次崩溃的持续线索:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/0c486ed7-9fdb-45f0-9fcd-342eadbb0476/sqlserverexe-crashing

显然,在升级到最新版本的SSDT(14.0.60525.0)之后会发生此崩溃。

Microsoft员工建议将此作为修复:

我们已经调查并认为,当在localdb服务器中的任何数据库中启用了查询存储function时,会发生这种情况。 您可以通过在所有localdb数据库实例中禁用查询存储function来解决此问题。 要查找启用了查询存储的数据库的名称,请运行以下查询:

select [name] from sys.databases where is_query_store_on=1

然后对于每个数据库,通过执行如下查询来禁用查询存储:

alter database DBNAME set query_store=off

有些人报告说,这并没有为他们解决问题,有些人则认为这样做了,所以你的成功可能会有所不同。

请参阅下面的Microsoft员工Kevin Cunnane的评论:

固定的LocalDB.msi包含在8月发行版中 – 可从msdn.microsoft.com/en-us/library/mt204009.aspx获得,并在接下来的几周内通过Visual Studio扩展和更新通道进行更新。

在您的localDb上运行以下脚本

 DECLARE @name VARCHAR(50) DECLARE @query VARCHAR(max) DECLARE db_cursor CURSOR FOR SELECT name FROM sys.databases WHERE is_query_store_on=1 and name NOT IN ('master','model','msdb','tempdb') OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN set @query = 'alter database ['+ @name+'] set query_store=off' EXECUTE( @query) FETCH NEXT FROM db_cursor INTO @name END CLOSE db_cursor DEALLOCATE db_cursor 

这将解决所有数据库的问题

我知道这是一个古老的post,但问题是自VS 2017以来再次抬头似乎……至少我的(SSDT)SQL数据库项目…所以希望这可能会帮助其他人… 。

接受的答案完美无缺,但非常手动。 Mahdi提供的脚本使其更加自动化。 但是,在这两种情况下,您可能(根据您的构建/部署设置)需要分别在(localdb)\mssqllocaldb(localdb)\projectsv1上的两个master数据库上运行该脚本。

此外,问题是每次使用F5构建和运行时,属性都会不断恢复。 但事实certificate,项目属性页面的“ 调试”选项卡上有一个设置,称为“ 部署数据库属性 …”清除(取消选中)此设置以确保问题不会再次出现。

注意:a)这仅适用于调试模式; b)它仅适用于(localdb)下的数据库。

项目属性页面 - 调试选项卡