KB2933103 - FIX: Assertion failure when you performing a query, containing TOP N and ORDER BY in SQL Server

Применяется к
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Проблема

Предположим, что вы используете Microsoft SQL Server 2008 R2, SQL Server 2012 или SQL Server 2014. При выполнении запроса с использованием функций TOP N и ORDER BY возникает ошибка утверждения, похожая на нижеприведенную.

Примечание

Расположение: "qstopsrt.cpp":384
Выражение: fFalse
SPID: <SPID>
Идентификатор процесса: <ProcessID>
Расположение: qxcntxt.cpp:1052
Выражение: cref == 0
SPID: <SPID>
Идентификатор процесса: <ProcessID>
MSG 3624, уровень 20, состояние 1, строка 2
Не удалось выполнить проверку утверждения системы. Дополнительные сведения см. в журнале ошибок SQL Server. Как правило, сбой утверждения вызван ошибкой программного обеспечения или повреждением данных. Чтобы выполнить проверку на наличие повреждений базы данных, рассмотрите возможность запуска DBCC CHECKDB. Если вы согласились отправлять дампы в Microsoft во время установки, мини-дамп будет отправлен в Microsoft. Обновление может быть доступно от Майкрософт в последнем пакете обновления или в QFE от технической поддержки.
MSG 0, уровень 20, состояние 0, строка 0
Возникла серьезная ошибка текущей команды. Результаты, если таковые имеются, должны быть отброшены.

Примечание. Исправление также может применяться к тому, что план запроса содержит команду "Сортировка (сверху и сортировкой)".

Причина

Проблема возникает из-за внутренней ошибки в подсистеме выполнения запросов.

Решение

Эта проблема была впервые исправлена в следующем накопительном пакете обновления SQL Server.

Накопительный пакет обновления 1 для SQL Server 2012 с пакетом обновления 2 (SP2) /en-us/help/2976982

Накопительный пакет обновления 2 для SQL Server 2014 г. /en-us/help/2967546

Накопительный пакет обновления 10 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/2954099

Накопительный пакет обновления 12 для SQL Server 2008 R2 SP2 /en-us/help/2938478

Сведения о накопительных обновлениях для SQL Server

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:

      

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».