นำไปใช้กับ
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ในรูปแฟ้มที่ดาวน์โหลดได้ Given ว่าการแก้ไขเป็นแบบสะสม แต่ละรุ่นใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับการก่อนหน้า SQL Server 2012 Service Pack 1 แก้ไขการนำออกใช้

อาการ

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

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

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

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

  • เงื่อนไขIFไม่ประกอบด้วยคำสั่งที่เริ่มต้นและสิ้นสุด

  • เงื่อนไขIFตามบล็อกให้ลองเริ่มต้น

  • บล็อคIFเป็น recompiled เมื่อคุณเรียกใช้แบบสอบถาม

การแก้ปัญหา

ข้อมูลการปรับปรุงสะสม

ปรับปรุงสะสม 4 สำหรับ SQL Server 2012 SP1

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

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

2772858 2012 เซิร์ฟเวอร์ SQL สร้างที่เปิดตัวหลังจากเปิดตัว SQL Server 2012 Service Pack 1

สถานะ

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

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

เมื่อต้องการทบทวนเกิดปัญหานี้ เรียกใช้คำสั่ง 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);BEGIN TRYSELECT 'message'END TRYBEGIN CATCHSELECT ERROR_MESSAGE()END CATCH

วิธีแก้ปัญหา

เมื่อต้องการหลีกเลี่ยงปัญหานี้ เพิ่มคำสั่งเริ่มต้นและสิ้นสุดให้กับเงื่อนไขIF

ข้อมูลอ้างอิง

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

935897แบบแบบเพิ่มหน่วยให้บริการแบบจำลองพร้อมใช้งานจากทีม SQL Server จะจัดส่งโปรแกรมแก้ไขด่วนสำหรับปัญหาที่รายงานสำหรับข้อมูลเพิ่มเติมเกี่ยวกับแบบแผนการตั้งชื่อสำหรับการปรับปรุง SQL Server ให้คลิกหมายเลขบทความต่อไปนี้เพื่อไปยังบทความในฐานความรู้ของ Microsoft:

แพคเกจการปรับปรุง schema Naming 822499สำหรับซอฟต์แวร์ของ Microsoft SQL Serverสำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์ของการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อไปยังบทความในฐานความรู้ของ Microsoft:

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

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

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

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