Symptoms
Consider the following scenario:
-
You run a MERGE statement that has an OUTPUT clause within a Stored Procedure or an ad hoc Transact-SQL batch in SQL Server 2016 or 2017 on Windows.
-
The destination database uses BULK_LOGGED or SIMPLE RECOVERY MODEL.
-
You insert a large amount of data (for example: around 6,000 rows) into a table in another database.
In this scenario, an assertion error occurs, and you may receive an error message that resembles the following:
Msg 3624, Level 20, State 1, Line LineNumber
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.
Resolution
Cumulative update information:
This issue is fixed in the following cumulative updates for SQL Server:
Cumulative Update 12 for SQL Server 2017
Cumulative Update 4 for SQL Server 2016 SP2
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
On-demand hotfix information:
This issue is fixed in the following on-demand hotfixe for SQL Server:
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminologythat Microsoft uses to describe software updates.