Microsoft SQL Server 2012 Service Pack 1 корекции се разпространяват като един файл за изтегляне. Имайки предвид, че корекциите са сборни, всяка нова версия съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишните SQL Server 2012 Service Pack 1 fix съобщение.
Симптоми
Когато изпълнявате Transact-SQL команда в SQL Server 2012, получавате следното съобщение за грешка:
Неправилен синтаксис близо до "begi".
Този проблем възниква, когато са налице следните условия:
-
Съдържа Ако състояние.
-
Ако състоянието не съдържа започва и край .
-
Ако състоянието е последвано от блок Започва опит .
-
Ако блок е recompiled определителен когато изпълнявате заявката.
Решение
Информация за сборна актуализация
Сборна актуализация 4 за SQL Server 2012 SP1
Решение за този проблем излезе първо в сборна актуализация 4. За повече информация как да получите този Сборен пакет за SQL Server 2012 SP1 щракнете върху следния номер, за да отидете на статия в базата знания на Microsoft:
2833645 сборни актуализация 4 за SQL Server 2012 SP1Забележка: Имайки предвид, че компилациите са сборни, всяка нова версия на корекцията съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишните SQL Server 2012 SP1 fix съобщение. Препоръчително е да приложите най-новата версия на корекцията, който ще съдържа тази корекция. За повече информация щракнете върху следния номер, за да отидете на статия в базата знания на Microsoft:
2772858 SQL Server 2012 компилации, издадени след SQL Server 2012 Service Pack 1
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".
Допълнителна информация
За да възпроизведете този проблем, изпълнете следните команди 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:
935897 Моделът за постъпково обслужване се предлага от екипа на SQL Server за предоставяне на спешни корекции за съобщени проблемиЗа повече информация за схемата за именуване на актуализации за SQL Server щракнете върху следния номер, за да отидете на статия в базата знания на Microsoft:
Пакетите за актуализация на 822499 именна схема за софтуер на Microsoft SQL ServerЗа повече информация относно терминологията за актуализация на софтуера щракнете върху следния номер, за да отидете на статия в базата знания на Microsoft:
824684 описание на стандартната терминология, използвана за описание на софтуерните актуализации на Microsoft