ข้อความแสดงข้อผิดพลาดเมื่อคุณพยายามบันทึกตารางใน SQL Server: "บันทึกการเปลี่ยนแปลงจะไม่ได้รับอนุญาต"

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 956176 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

เมื่อคุณใช้ภาษานิยามข้อมูล (DDL) เพื่อปรับเปลี่ยนตาราง และคุณพยายามบันทึกตารางใน Microsoft SQL Server 2008 คุณอาจได้รับข้อความต่อไปนี้:
ไม่สามารถบันทึกการเปลี่ยนแปลง การเปลี่ยนแปลงที่คุณทำไว้ต้องใช้ตารางต่อไปนี้จะถูกลบ และถูกสร้างขึ้นใหม่ คุณสามารถทำการเปลี่ยนแปลงตารางที่ไม่ได้ถูกสร้างขึ้นใหม่ หรือเปิดใช้งานตัวเลือกการป้องกันไม่ให้บันทึกการเปลี่ยนแปลงที่ จำเป็นต้องมีตารางที่จะถูกสร้างขึ้นใหม่อีกครั้ง

สาเหตุ

ปัญหานี้เกิดขึ้นเมื่อการ ป้องกันไม่ให้บันทึกการเปลี่ยนแปลงที่จำเป็นต้อง re-creation ที่ตาราง เปิดใช้งานตัวเลือก และคุณทำการเปลี่ยนแปลงต่อไปนี้อย่างน้อยหนึ่งตาราง:
  • คุณทำการเปลี่ยนแปลง อนุญาตให้มีค่า Null การตั้งค่าสำหรับคอลัมน์
  • คอลัมน์ในตารางการจัดลำดับใหม่
  • คุณเปลี่ยนแปลงชนิดข้อมูลของคอลัมน์
  • คุณเพิ่มคอลัมน์ใหม่
เมื่อคุณเปลี่ยนแปลงตารางเพื่อให้คุณทำการเปลี่ยนแปลงโครงสร้างของข้อมูลเมตาของตาราง และบันทึกตาราง ตารางที่ต้องสร้างขึ้นใหม่ตามการเปลี่ยนแปลงเหล่านี้ ซึ่งอาจส่งผลให้สูญหายของข้อมูลเมตา และข้อมูลสูญหายโดยตรงระหว่าง re-creation ของตาราง ถ้าคุณเปิดใช้งานการ ป้องกันไม่ให้บันทึกการเปลี่ยนแปลงที่จำเป็นต้อง re-creation ที่ตาราง ตัวเลือกในการ ตัวออกแบบ ส่วนของการ SQL Server Management Studio (SSMS) ตัวเลือก หน้าต่าง คุณได้รับข้อความแสดงข้อผิดพลาดที่กล่าวถึงในส่วน "อาการ"

การหลีกเลี่ยงปัญหา

เมื่อต้องหลีกเลี่ยงปัญหานี้ ใช้คำสั่ง SQL ของ Transact เพื่อทำการเปลี่ยนแปลงโครงสร้างของข้อมูลเมตาของตาราง สำหรับข้อมูลเพิ่มเติมดูหัวข้อต่อไปนี้ใน SQL Server Books Online:

http://msdn.microsoft.com/en-us/library/ms190273.aspx

ตัวอย่าง การเปลี่ยนแปลงชนิด datetime ในในตารางMyDateคอลัมน์เรียกว่าMyTableเพื่อยอมรับค่า NULL ที่คุณสามารถใช้ได้:

alter table MyTable alter column MyDate7 datetime NULL

สิ่งสำคัญ เราขอแนะนำว่า คุณไม่แก้ไขปัญหานี้ ด้วยการปิดตัวเลือกการป้องกันไม่ให้บันทึกการเปลี่ยนแปลงที่จำเป็นต้องใช้ตาราง re-creation สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความเสี่ยงของการปิดตัวเลือกนี้ ดูส่วน "ข้อมูลเพิ่มเติม"

สถานะ

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

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

เมื่อต้องการเปลี่ยนแปลง ป้องกันไม่ให้บันทึกการเปลี่ยนแปลงที่จำเป็นต้อง re-creation ที่ตาราง ตัวเลือก การทำตามขั้นตอนเหล่านี้:
  1. เปิด Studio การจัดการเซิร์ฟเวอร์ SQL (SSMS)
  2. ในการ เครื่องมือ เมนู คลิก ตัวเลือก.
  3. ในบานหน้าต่างนำทางของการ ตัวเลือก หน้าต่าง คลิก ผู้ออกแบบ.
  4. เลือก หรือล้างกล่องกาเครื่องหมายนี้ ป้องกันไม่ให้บันทึกการเปลี่ยนแปลงที่จำเป็นต้อง re-creation ที่ตาราง กล่องกาเครื่องหมาย และจากนั้น คลิก ตกลง.
หมายเหตุ ถ้าคุณปิดใช้งานตัวเลือกนี้ คุณจะเตือนเมื่อคุณบันทึกตารางที่มีการเปลี่ยนแปลงโครงสร้างของข้อมูลเมตาของตารางเปลี่ยนแปลงที่คุณทำ ในกรณีนี้ ข้อมูลสูญหายอาจเกิดขึ้นเมื่อคุณบันทึกตาราง

ความเสี่ยงของการปิดตัวเลือก "บันทึกการเปลี่ยนแปลงที่ต้องให้ตาราง re-creation ป้องกัน"

ถึงแม้ว่าการปิดตัวเลือกนี้จะช่วยให้คุณหลีกเลี่ยงการสร้างตาราง นั้นสามารถนำการเปลี่ยนแปลงที่กำลังสูญหาย ตัวอย่าง สมมติว่า คุณเปิดใช้งานคุณลักษณะการติดตามการเปลี่ยนแปลงในการติดตามการเปลี่ยนแปลงตาราง SQL Server 2008 เมื่อคุณทำการดำเนินการที่ทำให้ตารางจะถูกสร้างขึ้นใหม่ คุณได้รับข้อความแสดงข้อผิดพลาดที่กล่าวถึงในส่วน "อาการ" อย่างไรก็ตาม ถ้าคุณปิดใช้งานตัวเลือกนี้ การติดตามข้อมูลเปลี่ยนแปลงที่มีอยู่จะถูกลบเมื่อตารางถูกสร้างขึ้นใหม่ ดังนั้น เราแนะนำว่า คุณไม่แก้ไขปัญหานี้ ด้วยการปิดตัวเลือก

การตรวจสอบว่า คุณลักษณะการติดตามการเปลี่ยนแปลงถูกเปิดใช้งานสำหรับตาราง ให้ทำตามขั้นตอนเหล่านี้:
  1. ใน SQL Server Studio จัดการ ค้นหาตารางวัตถุ Explorer
  2. คลิกขวาตาราง และจากนั้น คลิกคุณสมบัติ
  3. ในกล่องโต้ตอบคุณสมบัติตารางคลิกติดตามการเปลี่ยนแปลง
ถ้าค่าของรายการการติดตามการเปลี่ยนแปลงเป็นจริงตัวเลือกนี้จะเปิดใช้งานสำหรับตาราง ถ้าค่าเป็นFalseตัวเลือกนี้ถูกปิดใช้งาน

เมื่อเปิดใช้งานคุณลักษณะการติดตามการเปลี่ยนแปลง ใช้คำสั่ง SQL ของ Transact เมื่อต้องการเปลี่ยนแปลงโครงสร้างของข้อมูลเมตาของตาราง

ขั้นตอนในการทบทวนเกิดปัญหา

  1. ใน SQL Server Studio จัดการ สร้างตารางที่ประกอบด้วยคีย์หลักในเครื่องมือของตัวออกแบบตาราง
  2. คลิกขวาฐานข้อมูลที่ประกอบด้วยตารางนี้ และจากนั้น คลิก คุณสมบัติ.
  3. ในการ คุณสมบัติของฐานข้อมูล กล่องโต้ตอบ คลิก ติดตามการเปลี่ยนแปลง.
  4. ตั้งค่าของการ ติดตามการเปลี่ยนแปลง สินค้า จริงแล้ว คลิก ตกลง.
  5. คลิกขวาตาราง และจากนั้น คลิก คุณสมบัติ.
  6. ในการ คุณสมบัติตาราง กล่องโต้ตอบ คลิก ติดตามการเปลี่ยนแปลง.
  7. ตั้งค่าของการ ติดตามการเปลี่ยนแปลง สินค้า จริงแล้ว คลิก ตกลง.
  8. ในการ เครื่องมือ เมนู คลิก ตัวเลือก.
  9. ในการ ตัวเลือก กล่องโต้ตอบ คลิก ผู้ออกแบบ.
  10. คลิกเพื่อเลือก ป้องกันไม่ให้บันทึกการเปลี่ยนแปลงที่คุณต้องให้ตาราง re-creation กล่องกาเครื่องหมาย และจากนั้น คลิก ตกลง
  11. เครื่องมือของตัวออกแบบตาราง เปลี่ยนแปลง อนุญาตให้มีค่า Null การตั้งค่าในคอลัมน์ที่มีอยู่
  12. กำลังพยายามบันทึกการเปลี่ยนแปลงลงในตาราง

คุณสมบัติ

หมายเลขบทความ (Article ID): 956176 - รีวิวครั้งสุดท้าย: 6 มิถุนายน 2555 - Revision: 4.0
ใช้กับ
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • SQL Server 2012 Enterprise Core
Keywords: 
kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:956176

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com