SELECT INTO ใช้ทำอะไร?
สร้าง ตารางใหม่ จากผลลัพธ์ของ SELECT คัดลอกโครงสร้างและข้อมูลพร้อมกัน ตารางใหม่ต้อง ยังไม่มีอยู่ ก่อนรัน
รูปแบบคำสั่ง
SELECT column_list
INTO new_table
FROM source_table
[WHERE condition];
ตัวอย่าง
คัดลอกคอลัมน์และข้อมูล
SELECT nhanvien_id, ho, ten
INTO danhba
FROM nhanvien
WHERE nhanvien_id < 1000;
สร้างตาราง danhba มี 3 คอลัมน์ + ข้อมูลจาก nhanvien ที่ ID < 1000
เปลี่ยนชื่อคอลัมน์ด้วย ALIAS
SELECT nhanvien_id AS danhba_id, ho, ten
INTO danhba
FROM nhanvien
WHERE nhanvien_id < 1000;
คอลัมน์แรกในตารางใหม่จะชื่อ danhba_id แทน nhanvien_id
ข้อควรระวัง
- ตารางใหม่ (
new_table) ต้องไม่มีอยู่แล้ว จะ error ถ้ามี - ไม่คัดลอก: Index, Constraint, Trigger, Primary Key, Foreign Key (เฉพาะโครงสร้างคอลัมน์และข้อมูล)
- Identity property จะถูกคัดลอกถ้าคอลัมน์ต้นทางเป็น Identity
- ใช้สำรองข้อมูล (backup) หรือสร้างตาราง staging ได้รวดเร็ว