วิธีแก้ปัญหารหัสข้อผิดพลาด 1060 ใน SQL Server (ทีละขั้นตอน)

เผยแพร่แล้ว: 2025-08-07

หากคุณทำงานใน SQL Server และดูข้อผิดพลาดที่บอกว่า:
“ ข้อผิดพลาด 1060: ชื่อคอลัมน์ซ้ำกัน” อย่าตกใจ มันดูจริงจัง แต่มันเป็นความผิดพลาดทั่วไป

สิ่งนี้มักจะปรากฏขึ้นเมื่อคุณพยายามเปลี่ยนตารางโดยการเพิ่มคอลัมน์ใหม่ แต่ชื่อคอลัมน์มีอยู่แล้ว บางทีคุณอาจไม่ได้สังเกตว่ามันอยู่ที่นั่น บางทีสคริปต์วิ่งสองครั้ง ไม่ว่าจะด้วยวิธีใด SQL Server ก็แจ้งให้คุณทราบว่า“ เฮ้คอลัมน์นี้มีอยู่แล้วฉันไม่สามารถเพิ่มอีกครั้งได้”

มาทำลายมันด้วยวิธีง่ายๆเพื่อให้คุณสามารถแก้ไขได้อย่างรวดเร็วและหลีกเลี่ยงในภายหลัง

รหัสข้อผิดพลาด SQL Server 1060 หมายถึงอะไร?

รหัสข้อผิดพลาด SQL Server 1060 หมายถึงอะไร

ข้อผิดพลาด 1060 หมายความว่า SQL Server ปิดกั้นคุณจากการเพิ่มคอลัมน์ด้วยชื่อที่มีอยู่แล้วในตาราง

มันเรียกว่า "ชื่อคอลัมน์ที่ซ้ำกัน" สมมติว่าตารางของคุณมีคอลัมน์ที่ชื่อ user_email อยู่แล้ว หากคุณพยายามเพิ่มคอลัมน์อื่นด้วยชื่อเดียวกันโดยใช้ ALTER TABLE SQL Server จะทำผิดพลาด 1060 เพื่อหยุดการทำซ้ำ

มันไม่ใช่ข้อผิดพลาด เป็นเพียงวิธีการปกป้องโครงสร้างฐานข้อมูลของ SQL

เหตุผลทั่วไปว่าทำไม SQL Server แสดงรหัสข้อผิดพลาด 1060

ข้อผิดพลาดนี้มักจะปรากฏขึ้นเมื่อคุณทำงานในการออกแบบของตารางหรือเรียกใช้สคริปต์ ไม่สำคัญว่าคุณจะทำใน SQL Server Management Studio (SSMS) หรือไฟล์สคริปต์ - มันเกี่ยวกับวิธีการเขียนคำสั่ง

นี่คือสถานการณ์ในชีวิตประจำวันที่ข้อผิดพลาด 1060 ปรากฏขึ้น:

  • คุณพยายาม เพิ่มคอลัมน์ที่มีอยู่แล้ว
  • คุณ เรียกใช้สคริปต์เดียวกันสองครั้ง โดยไม่ตรวจสอบคอลัมน์
  • คุณคัดลอกสคริปต์จากนักพัฒนาอื่นที่เพิ่มฟิลด์ที่ซ้ำกัน
  • คุณกำลัง กู้คืนฐานข้อมูล และเรียกใช้การอัปเดตที่ความขัดแย้งนั้น
  • คุณกำลังใช้ เครื่องมืออัตโนมัติ ที่ใช้สคีมาเปลี่ยนมากกว่าหนึ่งครั้ง
  • คุณกำลังแก้ไขโต๊ะขนาดใหญ่และสูญเสียการติดตามชื่อคอลัมน์
  • คุณกำลังย้ายแอพเก่าและพยายาม ซิงค์คอลัมน์ใหม่

มันง่ายที่จะพบโดยเฉพาะอย่างยิ่งในโครงการที่ใช้ร่วมกันหรือการเปลี่ยนแปลงสคีมาที่สำคัญ

วิธีแก้ไขรหัสข้อผิดพลาด SQL Server 1060

ข้อผิดพลาดนี้ดูน่ากลัวในตอนแรก แต่มักจะแก้ไขได้ง่ายมาก คุณแค่พยายามเพิ่มคอลัมน์ที่มีอยู่แล้วในตาราง ดังนั้นกุญแจสำคัญคือ การหลีกเลี่ยงการทำซ้ำ หรือ จัดการอย่างปลอดภัย

ลองแก้ไขสิ่งเหล่านี้ทีละคน ส่วนใหญ่เวลาแก้ไข #1 หรือแก้ไข #2 จะแก้ปัญหาได้ทันที

แก้ไข #1: ตรวจสอบว่ามีคอลัมน์อยู่แล้ว

ก่อนที่คุณจะพยายามเพิ่มคอลัมน์ใหม่ก่อนอื่นให้ตรวจสอบตารางเพื่อดูว่าคอลัมน์นั้นมีอยู่แล้วหรือไม่

คุณสามารถใช้แบบสอบถาม SQL นี้:

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'your_table_name'

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

Fix #2: ใช้ IF NOT EXISTS ในคำสั่ง Alter ของคุณ

SQL Server ไม่อนุญาตให้ IF NOT EXISTS ตรรกะภายใน ALTER TABLE โดยตรง แต่คุณสามารถสรุปคำสั่ง Alter ของคุณภายในบล็อก IF เช่นนี้:

IF NOT EXISTS (
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'your_table_name'
AND COLUMN_NAME = 'your_column_name'
)
BEGIN
ALTER TABLE your_table_name
ADD your_column_name VARCHAR(255)
END

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

Fix #3: ตรวจสอบและทำความสะอาดสคริปต์ SQL ของคุณ

บางครั้งปัญหาไม่ได้อยู่ในรหัสของคุณ - มีกี่ครั้งที่รหัสนั้นทำงาน หากคุณกำลังทำงานกับสคริปต์ SQL ยาวหรือไฟล์การโยกย้ายตรวจสอบคำสั่ง ALTER TABLE ซ้ำ บางทีคอลัมน์เดียวกันอาจถูกเพิ่มมากกว่าหนึ่งครั้งโดยบังเอิญ

นอกจากนี้หากคุณคัดลอกส่วนหนึ่งของสคริปต์จากแหล่งอื่นตรวจสอบอีกครั้งว่าไม่มีคำสั่งซ้ำสำหรับตารางเดียวกัน ขั้นตอนการทำความสะอาดนี้มีประโยชน์อย่างยิ่งเมื่อจัดการการเปลี่ยนแปลงหลายอย่าง

แก้ไข #4: เปลี่ยนชื่อหรือวางคอลัมน์ที่ซ้ำกัน (ถ้าจำเป็น)

หากคอลัมน์มีอยู่แล้ว แต่ไม่จำเป็นอีกต่อไปหรือมีชื่อผิดคุณอาจต้องการ วาง หรือ เปลี่ยนชื่อ ก่อนที่จะเพิ่มค์ใหม่

ในการวางคอลัมน์:

ALTER TABLE your_table_name
DROP COLUMN your_column_name

ในการเปลี่ยนชื่อคอลัมน์ (SQL Server 2016+):

EXEC sp_rename 'your_table_name.old_column_name', 'new_column_name', 'COLUMN'

คำเตือน: คอลัมน์การวางหรือเปลี่ยนชื่อสามารถทำลายแอปของคุณได้หากคอลัมน์ถูกใช้งานที่อื่น ใช้สิ่งนี้หากคุณแน่ใจว่าคอลัมน์นั้นปลอดภัยในการลบหรือเปลี่ยนแปลง

Fix #5: ใช้ SQL Server Management Studio (SSMS) เพื่อตรวจสอบสคีมา

บางครั้งมันช่วยให้เห็นสิ่งต่าง ๆ เปิด SSMS เชื่อมต่อกับฐานข้อมูลของคุณและขยายตาราง คุณจะเห็นชื่อคอลัมน์ทั้งหมดที่ระบุไว้ สิ่งนี้ทำให้ง่ายต่อการมองเห็นหากคอลัมน์มีอยู่แล้วหรือเพิ่มด้วยการสะกดคำที่แตกต่างกัน

เมื่อได้รับการยืนยันแล้วคุณสามารถกลับไปที่สคริปต์ของคุณและแก้ไขหรือข้ามคอลัมน์นั้นได้อย่างปลอดภัย SSMS เหมาะสำหรับการตรวจสอบสองครั้งก่อนที่จะทำการเปลี่ยนแปลงโดยเฉพาะอย่างยิ่งหากคุณไม่แน่ใจ

แนวทางปฏิบัติที่ดีที่สุดเพื่อหลีกเลี่ยงรหัสข้อผิดพลาด SQL Server 1060

ข้อผิดพลาดนี้เป็นมาตรฐาน แต่ก็ง่ายที่จะหลีกเลี่ยงเมื่อคุณรู้วิธีจัดการกับมัน นี่คือเคล็ดลับบางอย่างที่สามารถช่วยคุณไม่ให้กดปุ่มอีกครั้งในอนาคต:

  • ตรวจสอบเสมอว่ามีคอลัมน์อยู่แล้ว ก่อนที่จะเพิ่มหรือไม่
  • ใช้ IF NOT EXISTS ตรรกะในสคริปต์ของคุณ (เมื่อรองรับ)
  • ติดตั้ง การตั้งชื่อคอลัมน์ที่ชัดเจนและสอดคล้องกัน
  • อย่าเรียกใช้ตารางดัดแปลงเดียวกันมากกว่าหนึ่งครั้งเว้นแต่จำเป็น
  • เก็บบันทึกการเปลี่ยนแปลงสคีมาในบันทึกการเปลี่ยนแปลงหรือการควบคุมเวอร์ชัน
  • ทดสอบสคริปต์ใหม่บน ฐานข้อมูลการจัดเตรียม ก่อนที่จะไปถ่ายทอดสด
  • ใช้เครื่องมือเช่น SSMS เพื่อตรวจสอบคอลัมน์ตารางด้วยสายตา
  • หลีกเลี่ยงการคัดลอก SQL โดยไม่ทราบว่ามันทำอะไร

นิสัยขนาดเล็กเหล่านี้สามารถช่วยให้คุณเขียนสคริปต์ทำความสะอาดและหลีกเลี่ยงปัญหาเช่นข้อผิดพลาด 1060

บทสรุป

SQL Server Error 1060 อาจดูสับสน แต่ก็หมายความว่าคุณพยายามเพิ่มคอลัมน์ที่มีอยู่แล้ว SQL กำลังทำงานเพื่อปกป้องโครงสร้างตารางของคุณ

การแก้ไขมักจะง่าย: ตรวจสอบรายการคอลัมน์ของคุณปรับสคริปต์หรือเพิ่มเงื่อนไขเพื่อป้องกันการทำซ้ำ เมื่อคุณเข้าใจสิ่งที่ทำให้เกิดมันง่ายที่จะหลีกเลี่ยงในอนาคต

ข้อผิดพลาดประเภทนี้เป็นเรื่องปกติในการทำงานของ SQL ยิ่งคุณฝึกฝนและทดสอบสคริปต์ของคุณมากเท่าไหร่ก็ยิ่งได้รับมากขึ้นเท่านั้น