作为一个可下载文件分发 Microsoft SQL Server 2012 Service Pack 1 的修补程序。考虑到修补程序是累积性的每个新版本包含的所有修补程序和附带上一个 SQL Server 2012 Service Pack 1 的所有安全修补程序的修补都程序版本。
症状
在 SQL Server 2012年中运行的事务处理 SQL 语句时,您会收到以下错误消息︰
'Begi' 附近有语法错误。
满足以下条件时,会发生此问题︰
-
该语句包含的IF条件。
-
如果条件中不包含开始和结束语句。
-
IF条件跟开始 TRY块。
-
当您运行查询时重新编译该IF块。
解决方案
累积更新信息
SQL Server 2012 sp1 的累积更新 4
累积更新 4 中首次发布此问题的修补程序。有关如何获取此累积更新包,SQL Server 2012 SP1 的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章︰
2833645累计为 SQL Server 2012 SP1 更新 4注意:考虑到版本具有累积性,每个新修补程序版本包含的所有修补程序和已包含了以前 SQL Server 2012 SP1 的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章:
SQL Server 2012年生成 SQL Server 2012 Service Pack 1 发布后发布的2772858
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
详细信息
要重现此问题,请在 SQL Server 2012年运行下列事务处理 SQL 语句︰
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解决方法
要变通解决此问题,请将开始和结束语句添加到IF条件。
参考资料
对于 SQL Server 的增量服务模式的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章︰
935897的增量服务模式是可以从 SQL Server 团队提供报告的问题的修补程序有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章︰
822499命名架构为 Microsoft SQL Server 软件更新程序包有关软件更新术语的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章︰
用于描述 Microsoft 软件更新的标准术语的824684说明