Applies To
SQL Server 2012 Enterprise SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Express

Microsoft SQL Server 2012 Service Pack 1 的修正會以一個可下載的檔案形式發佈。 由於修補是累積性的,每個新版本都包含了先前 SQL Server 2012 Service Pack 1 修正釋出時所包含的所有熱修補與安全修補。

徵兆

當您在 SQL Server 2012 中執行 Transact-SQL 陳述式時,會收到以下錯誤訊息:

「begi」附近語法錯誤。

當以下條件成立時,會發生此問題:

  • 該陳述包含一個 IF 條件。

  • IF 條件不包含 BEGIN 和 END 語句。

  • IF 條件後接著一個 BEGIN TRY 區塊。

  • 當你執行查詢時,IF 區塊會被重新編譯。

解決方案

累積更新資訊

累積更新4 for SQL Server 2012 SP1

這個問題的修正最早是在累積更新 4 中釋出的。 欲了解更多如何取得 SQL Server 2012 SP1 累積更新套件的資訊,請點擊以下文章編號前往 Microsoft 知識庫中的相關文章:

2833645 SQL Server 2012 SP1 累積更新 注意:由於建置是累積式的,每個新修正釋版本都包含了先前 SQL Server 2012 SP1 修正釋出時所包含的所有熱修補與安全修補。 我們建議您考慮套用包含此熱修正的最新修正版本。 如需更多資訊,請點選下方文章編號,前往 Microsoft 知識庫查閱文章:

2772858 SQL Server 2012 版本是在 SQL Server 2012 服務包 1 發布之後釋出的

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

其他相關資訊

要重現此問題,請在 2012 SQL Server 執行以下 Transact-SQL 語句:DECLARE @i INTIF object_id ('tempdb..#temptable 的 ) 不是空的 DROP TABLE,#temptable 建立 TABLE #temptable (ID INT) 插入到 #temptable 值 (1) , (2) , (3) ;若 (年取得日期為 () ) =2012 選擇 @i= (選擇計數 (*) 從 #temptable) 中 nr 取;開始 嘗試選擇 「訊息」結束 嘗試開始 捕捉選擇 ERROR_MESSAGE () 結束 接住

因應措施 

為了解決這個問題,可以在 IF 條件中加入 BEGIN 和 END 語句。

參考

欲了解更多關於 SQL Server 增量服務模型的資訊,請點擊以下文章編號前往 Microsoft 知識庫中的文章:

935897 SQL Server 團隊提供增量服務模型,以提供針對回報問題的熱修補。欲了解更多關於 SQL Server 更新命名結構的資訊,請點擊以下文章編號前往 Microsoft 知識庫中的相關文章:

822499 Microsoft SQL Server 軟體更新套件的命名結構 欲了解更多軟體更新術語,請點擊以下文章編號前往 Microsoft 知識庫中的文章:

824684 描述 Microsoft 軟體更新所使用的標準術語說明

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。