3
เป็นไปได้หรือไม่ที่จะเลือก RAISERROR หรือ THROW ขึ้นอยู่กับรุ่นของ SQL Server
นี่คือรหัสของฉันตอนนี้: BEGIN TRY INSERT INTO TABLE (F1,F2,F3) VALUES ('1','2','3') END TRY BEGIN CATCH ;THROW END CATCH ใช้งานได้ดีเว้นแต่ว่ามันจะทำงานบนเครื่องที่มี SQL 2008 ฉันต้องการให้ CATCH block ทำการตรวจสอบกับเวอร์ชันของ SQL และเรียกใช้ THROW ถ้ามันเท่ากับหรือสูงกว่าถึง 2012 และ RAISERROR ถ้าเป็น 2008 ฉันจะทำงานต่อไป ข้อผิดพลาดทางไวยากรณ์และฉันสงสัยว่ามันเป็นไปได้ แม้แต่สิ่งที่เรียบง่ายเช่นนี้ก็ไม่ได้ผลสำหรับฉัน BEGIN CATCH IF ((SELECT SERVERPROPERTY('productversion')) >= 11) ;THROW END CATCH คำแนะนำใด ๆ ที่ชื่นชม