เรากำลังอัพเกรดสภาพแวดล้อมการทดสอบของเราด้วยเซิร์ฟเวอร์ใหม่และ Microsoft SQL Server รุ่นที่ปรับปรุงแล้วและพบปัญหา
บนเซิร์ฟเวอร์ใหม่รหัสเก่าของเราจะได้รับ "การดำเนินการไม่ได้รับอนุญาตเมื่อวัตถุถูกปิด" เมื่อดำเนินการขั้นตอนการจัดเก็บบางอย่าง ข้อความนี้ไม่เคยปรากฏบนเซิร์ฟเวอร์เก่า เมื่อเราติดตามมันปัญหาสามารถแก้ไขได้โดยการเพิ่มSET NOCOUNT ON;
ขั้นตอนการจัดเก็บ
ฉันดูค่าเริ่มต้นในฐานข้อมูลและไม่เห็นการตั้งค่าที่แตกต่าง (SQL Server 2008 เทียบกับ SQL Server 2014) ที่เกี่ยวข้องกับค่าเริ่มต้น
ฉันควรตั้งค่าแบบใดเพื่อแก้ไขปัญหานี้ทั่วโลกโดยไม่จำเป็นต้องเพิ่มSET NOCOUNT ON
โปรแกรมที่เก็บไว้เป็นพันรายการ
SET NOCOUNT ON;
ที่จุดเริ่มต้นของขั้นตอนการจัดเก็บ (หลังจากBEGIN
) จำนวนขั้นตอนการจัดเก็บไม่ควรเป็นปัญหาจริงๆ
BEGIN
- มันดี แต่ไม่จำเป็น
SET NOCOUNT ON;
เสมอ