Các bản sửa SQL Server Microsoft SQL Server 2012 Gói Dịch vụ 1 được phân phối dưới dạng một tệp có thể tải xuống. Cho rằng các bản sửa lỗi được tích lũy, mỗi bản phát hành mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản phát hành sửa lỗi SQL Server 2012 Gói Dịch vụ 1 trước đó.
Triệu chứng
Khi bạn chạy câu lệnh Transact-SQL trong SQL Server 2012, bạn nhận được thông báo lỗi sau:
Cú pháp không chính xác gần 'begi'.
Sự cố này xảy ra khi các điều kiện sau đây là đúng:
-
Câu lệnh chứa điều kiện IF.
-
Điều kiện IF không chứa câu lệnh BEGIN và END.
-
Sau đó, điều kiện IF là khối BEGIN TRY.
-
Khối IF được biên soạn lại khi bạn chạy truy vấn.
Giải pháp
Thông tin cập nhật tích lũy
Bản cập nhật tích lũy 4 cho SQL Server 2012 SP1
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong Bản cập nhật Tích lũy 4. Để biết thêm thông tin về cách nhận gói cập nhật tích lũy này cho SQL Server 2012 SP1, hãy bấm vào số bài viết sau để đi đến bài viết trong Cơ sở Kiến thức Microsoft:
2833645 Bản cập nhật tích lũy 4 cho SQL Server 2012 SP1Note Cho rằng các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới chứa tất cả các cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản phát hành sửa lỗi SQL Server 2012 SP1 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành sửa lỗi mới nhất có chứa hotfix này. Để biết thêm thông tin, vui lòng bấm vào số bài viết dưới đây để di chuyển đến bài viết trong Cơ sở tri thức Microsoft:
2772858 Bản dựng SQL Server 2012 mới được phát hành sau SQL Server 2012 Gói Dịch vụ 1 được phát hành
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Thông tin Bổ sung
Để mô phỏng sự cố này, hãy chạy câu lệnh Transact-SQL sau trong SQL Server 2012: KHAI BÁO @i INTIF object_id('tempdb.. #temptable') IS NOT NULLDROP TABLE #temptableCREATE TABLE #temptable (id INT)INSERT INTO #temptable VALUES (1),(2),(3);IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);BẮT ĐẦU THỬCHỌN 'message'END TRYBEGIN CATCHSELECT ERROR_MESSAGE()END CATCH
Cách giải quyết
Để khắc phục sự cố này, hãy thêm câu lệnh BEGIN và END vào điều kiện IF.
Tham khảo
Để biết thêm thông tin về Mô hình Cung cấp Dịch vụ Gia SQL Server cho Doanh nghiệp, hãy bấm vào số bài viết sau để đi tới bài viết trong Cơ sở Kiến thức Microsoft:
935897 Nhóm SQL Server có Mô hình Dịch vụ Gia tăng để cung cấp cập nhật nóng cho các sự cố được báo cáo Để biết thêm thông tin về sơ đồ đặt tên cho các bản cập nhật SQL Server, hãy bấm vào số bài viết sau đây để đi đến bài viết trong Cơ sở Kiến thức Microsoft:
822499 Sơ đồ đặt tên cho gói cập nhật phần mềm Microsoft SQL Server Để biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để đi tới bài viết trong Cơ sở Kiến thức Microsoft:
824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft