นำไปใช้กับ
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 ก่อนหน้า

อาการ

เมื่อคุณเรียกใช้คําสั่ง Transact-SQL ใน SQL Server 2012 คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

ไวยากรณ์ที่ไม่ถูกต้องใกล้กับ 'begi'

ปัญหานี้เกิดขึ้นเมื่อเงื่อนไขต่อไปนี้เป็นจริง:

  • คําสั่งประกอบด้วยเงื่อนไข IF

  • เงื่อนไข IF ไม่มีคําสั่ง BEGIN และ END

  • เงื่อนไข IF จะตามด้วยบล็อก BEGIN TRY

  • บล็อก IF จะถูกคอมไพล์ใหม่เมื่อคุณเรียกใช้คิวรี

การแก้ไข

ข้อมูลโปรแกรมอัปเดตสะสม

การอัปเดตสะสม 4 สําหรับ SQL Server 2012 SP1

การแก้ไขสําหรับปัญหานี้ถูกนําออกใช้ครั้งแรกในการอัปเดตสะสม 4 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2012 SP1 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อไปยังบทความใน Microsoft Knowledge Base:

2833645 การอัปเดตสะสม 4 สําหรับ SQL Server 2012 SP1Note ระบุว่ารุ่นเป็นแบบสะสม แต่ละการเผยแพร่การแก้ไขใหม่จะมีการแก้ไขด่วนทั้งหมดและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การแก้ไข SQL Server 2012 SP1 ก่อนหน้า เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อไปที่บทความใน Microsoft Knowledge Base:

2772858 บิลด์ SQL Server 2012 ที่เผยแพร่หลังจากเปิดตัว Service Pack 1 SQL Server 2012

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"

ข้อมูลเพิ่มเติม

เมื่อต้องการสร้างปัญหานี้ใหม่ ให้เรียกใช้คําสั่ง Transact-SQL ต่อไปนี้ใน SQL Server 2012: DECLARE @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);เริ่มลองเลือก 'ข้อความ'สิ้นสุด ลองเริ่ม CATCHSELECT ERROR_MESSAGE()สิ้นสุดการจับ

วิธีแก้ไขปัญหาชั่วคราว

เมื่อต้องการแก้ไขปัญหานี้ ชั่วคราว ให้เพิ่มคําสั่ง BEGIN และ END ลงในเงื่อนไข IF

อ้างอิง

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการให้บริการแบบเพิ่มเติมสําหรับ SQL Server ให้คลิกหมายเลขบทความต่อไปนี้เพื่อไปยังบทความใน Microsoft Knowledge Base:

935897 Incremental Servicing Model is available from the SQL Server team to deliver hotfixes for reported problems for more information about the naming schema for SQL Server updates, click the following article number to go to the article in the Microsoft Knowledge Base:

822499 รูปแบบการตั้งชื่อสําหรับแพคเกจปรับปรุงซอฟต์แวร์ของ Microsoft SQL Server สําหรับข้อมูลเพิ่มเติมเกี่ยวกับคําศัพท์เฉพาะของการอัปเดตซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อไปยังบทความใน Microsoft Knowledge Base:

824684 คําอธิบายเกี่ยวกับคําศัพท์มาตรฐานที่ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์ของ Microsoft

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ