Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Пакет обновления 1 для Microsoft SQL Server 2012 распространяются как один загружаемый файл. Учитывая, что исправления являются накопительными, каждый выпуск содержит все исправления и все исправления безопасности, которые были включены в Пакет обновления 1 для предыдущего SQL Server 2012 выпуска исправлений.

Симптомы

При выполнении инструкции Transact-SQL в SQL Server 2012, появляется следующее сообщение об ошибке:

Неправильный синтаксис около «begi».


Эта проблема возникает при выполнении следующих условий:

  • Инструкция содержит условие IF .

  • Условие IF не содержит инструкции BEGIN и END .

  • Условие IF следует блок BEGIN TRY .

  • Если блок перекомпилируется при выполнении запроса.


Решение

Информация о накопительном пакете обновления

Накопительное обновление 4 для SQL Server 2012 с пакетом обновления 1

Исправление, устраняющее эту проблему, сначала было выпущено в накопительное обновление 4. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2012 с пакетом обновления 1 щелкните следующий номер статьи, чтобы перейти к статье базы знаний Майкрософт:

2833645 накопительного обновления 4 для SQL Server 2012 с пакетом обновления 1Примечание. Учитывая, что построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2012 с пакетом обновления 1 выпуска исправлений. Мы рекомендуем рассмотреть применение последнего выпуска исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи, чтобы перейти к статье базы знаний Майкрософт:

2772858 SQL Server 2012 выполняется построение, выпущенных после выпуска SQL Server 2012 Пакет обновления 1

Статус

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

Дополнительные сведения

Чтобы воспроизвести данную проблему, выполните следующие инструкции Transact-SQL в SQL Server 2012:

DECLARE @i INT

IF object_id('tempdb..#temptable') IS NOT NULL
DROP TABLE #temptable

CREATE TABLE #temptable (id INT)
INSERT INTO #temptable VALUES (1),(2),(3);

IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);
BEGIN TRY
SELECT 'message'
END TRY

BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH

Временное решение

Чтобы обойти эту проблему, добавьте инструкции BEGIN и END IF условие.

Ссылки

Дополнительные сведения о добавочных модель обслуживания для SQL Server щелкните следующий номер статьи, чтобы перейти к статье базы знаний Майкрософт:

935897 добавочных модель обслуживания доступна из группы SQL Server для предоставления исправления для проблем, о которых сообщалось вДополнительные сведения о схеме именования для обновления SQL Server щелкните следующий номер статьи, чтобы перейти к статье базы знаний Майкрософт:

Пакеты обновлений схемы именования 822499 для программного обеспечения Microsoft SQL ServerДополнительные сведения о терминологии обновления программного обеспечения щелкните следующий номер статьи, чтобы перейти к статье базы знаний Майкрософт:

Описание 824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×