FIX: Access violation may occur when trigger query joins large dataset in deleted/inserted table and runs in parallel in SQL server 2012 or SQL Server 2014

Applies to: SQL Server 2012 EnterpriseSQL Server 2012 DeveloperSQL Server 2012 Standard More

Symptoms


Consider the following scenario:
  • You have Microsoft SQL Server 2012 or SQL Server 2014 installed on a computer.
  • You run a query to delete or insert a large set of data in a database.
  • You have a trigger defined on the target table.
  • The query in the trigger joins the inserted or deleted table with other tables.
  • Parallelism is enabled and SQL Server tries to use a parallel query execution plan to execute this trigger query.
In this scenario, an access violation occurs and the query does not work.

Note The access violation occurs in the sqlmin!HoBtAccess::Init function. A memory dump file is generated when this issue occurs.

Resolution


The issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 1 for SQL Server 2014

Cumulative Update 9 for SQL Server 2012 SP1

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.