Microsoft SQL Server 2012 із пакетом оновлень 1, виправлення, які було випущено як один із завантаження файлів. Враховуючи, що ці виправлення сукупні, кожен новий пакет, містить усі поточні виправлення, і усі виправлення безпеки, що входили до складу попередніх SQL Server 2012 Service Pack 1 виправлення з випуску.
Причини
Під час запуску оператора Transact-SQL, SQL Server 2012, з'являється таке повідомлення про помилку:
Неправильний синтаксис біля "нов".
Ця проблема виникає, за таких умов:
-
Оператор містить, Якщо умови.
-
За умови, Якщо не містить почати і в кінці оператори.
-
Якщо стан супроводжується блокування, Імена яких ПОЧИНАЮТЬСЯ СПРОБУВАТИ .
-
Якщо блок є перекомпільовано під час виконання запиту.
Вирішення
Відомості про Сукупне оновлення
Сукупний пакет оновлень 4, для SQL Server 2012 з пакетом оновлень 1
Виправлення для цієї проблеми, спочатку було випущено сукупного оновлення 4. Щоб отримати додаткові відомості про те, як отримати цей пакет накопичувальне оновлення для SQL Server 2012, SP1 клацніть цей номер статті, щоб переглянути її в базі знань Microsoft Knowledge Base:
2833645 сукупного пакет оновлень 4 для SQL Server 2012 пакетом оновлень 1Примітка. Враховуючи, що ці збірки сукупні, кожен новий пакет, містить усі виправлення, і усі виправлення безпеки, що входили до складу попередніх SQL Server 2012 SP1 виправлення з випуску. Корпорація Майкрософт рекомендує, що ви вважаєте, що застосування останньому випуску виправити, що містить це виправлення. Для отримання додаткових відомостей клацніть цей номер статті, щоб переглянути її в базі знань Microsoft:
2772858 до SQL Server 2012 будує, які були надані після випуску пакета оновлень 1 для SQL Server 2012
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".
Додаткові відомості
Щоб відтворити цю проблему, виконайте такі команди 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
Виправлення помилок
Щоб тимчасово усунути цю проблему, за умови, Якщо додати почати і в кінці оператори.
Посилання
Щоб отримати додаткові відомості про Покрокову модель обслуговування для SQL Server клацніть цей номер статті, щоб переглянути її в базі знань Microsoft Knowledge Base:
935897 в додаткових обслуговування модель доступна з команди SQL Server, щоб доставити виправлень для повідомляли про проблемиЩоб отримати додаткові відомості про присвоєння імен оновленням для SQL Server клацніть цей номер статті, щоб переглянути її в базі знань Microsoft Knowledge Base:
Схема іменування 822499 , Microsoft SQL Server програмного забезпечення, пакетами оновленьЩоб отримати додаткові відомості про термінологію оновлення програмного забезпечення клацніть цей номер статті, щоб переглянути її в базі знань Microsoft Knowledge Base:
824684 Опис стандартну термінологію, яка використовується для опису оновлень програмних продуктів Майкрософт