คำสั่ง INSERT ใน SQL Server (Transact-SQL) ใช้เพื่อแทรกระเบียนอย่างน้อยหนึ่งรายการลงในตาราง
INSERT ไวยากรณ์คำสั่ง
แทรกบันทึก
ในรูปแบบที่ง่ายที่สุด ไวยากรณ์คำสั่ง INSERT จะแทรกระเบียนที่มีคีย์เวิร์ด VALUES
INSERT INTObang
(cot1, cot2, …)
VALUES
(bieuthuc1, bieuthuc2, …),
(bieuthuc1, bieuthuc2, …),
. ;
ไวยากรณ์แบบเต็มของคำสั่ง INSERT แทรกระเบียนโดยใช้คีย์เวิร์ด VALUES
INSERT INTO bang
(cot1, cot2, …)
VALUES
( DEFAULT | NULL | bieuthuc1,
DEFAULT | NULL | bieuthuc2,
…
);
หรือรูปแบบการแทรกเรกคอร์ดโดยใช้คีย์เวิร์ด DEFAULT VALUES
INSERT INTO bang
(cot1, cot2, …)
DEFAULT VALU
ES;
แทรกหลายระเบียน
ในรูปแบบที่ง่ายที่สุด ไวยากรณ์สำหรับการแทรกหลายระเบียนคือการเลือกย่อย
INSERT INTO bang
(cot1, cot2, …)
SELECT bieuthuc1, bieuthuc2, …
FROM bang_nguon
[WHERE dieuk
ien];
ไวยากรณ์แบบเต็มสำหรับการแทรกหลายโต๊ะทำงานด้วยการเลือกย่อย
INSERT [TOP (tri_dau) [PERCENT] ]
INTO bang
(cot1, cot2, …)
SELECT bieuthuc1, bieuthuc2, …
FROM bang_nguon
[WHERE dieukien];
ชื่อตัวแปรหรือค่าตัวแปร
ระบุ
ตารางสำหรับแทรกเรคคอร์ด
cot1, cot2
คอลัมน์ในตารางเพื่อแทรกค่า
bieuthuc1, bieuthuc2
ค่าที่จะระบุในคอลัมน์ในตาราง cot1 จะได้รับการกำหนดค่าของ bieuthuc1 cot2 จะได้รับการกำหนดค่าของ bieuthuc2
TOP (giatri_dau)
ตัวเลือก หากเจาะจง มันจะแทรกค่าแรกของแถวตาม giatri_dau ตัวอย่างเช่น TOP (10) จะแทรก 10 แถวแรกจากชุดผลลัพธ์
PERCENT
ตัวเลือก หากระบุไว้ แถวแรกจะอิงตามเปอร์เซ็นต์ของ giatri_dau ของชุดผลลัพธ์ ตัวอย่างเช่น TOP (10) PERCENT จะแทรก 10% ของค่าแรกในชุดผลลัพธ์
bang_nguon
ซอร์สตาราง (ตารางต้นฉบับ) เพื่อแทรกข้อมูลจากตารางอื่น
WHERE dieukien
ตัวเลือก ตรงตามเงื่อนไขการส่งเพื่อแทรกบันทึก
หมายเหตุ
- เมื่อแทรกระเบียนลงในตารางด้วยคำสั่ง INSERT คุณต้องระบุค่าสำหรับคอลัมน์ NOT NULL
- คุณสามารถลบคอลัมน์ออกจากคำสั่ง INSERT ได้หากคอลัมน์นั้นอนุญาตค่า NULL
ตัวอย่างเช่น - ใช้คำหลัก VALUES
INSERT INTO nhanvien
(nhanvien_id, ten, ho)
VALUE
(10, 'Anderson', 'S
arah');
คำสั่ง INSERT นี้จะส่งผลให้มีการแทรก 1 ระเบียนลงในตาราง บันทึกนี้ต้องมี nhanvien_id เท่ากับ 10 พวกเขาคือ Anderson และชื่อของพวกเขาคือ Sarah
ไวยากรณ์นี้สามารถใช้เพื่อแทรกมากกว่า 1 ระเบียนในแต่ละครั้ง เช่น:
INSERT INTOanvien
(nhanvien_id, ho, ten)
VALUES
(19, 'Anderson', 'Sarah'),
(11, 'Johnson', 'Dale')
;
ตัวอย่างเช่น คำสั่ง INSERT ด้านบนแสดงให้เห็นว่าเป็นไปได้ที่จะแทรกระเบียนที่มีคีย์เวิร์ด VALUES มากกว่า 1 รายการ ในตัวอย่างนี้ มีการแทรก 2 ระเบียนลงในตาราง เร็กคอร์ดแรกมี 10 นาที พวกเขาคือ Anderson และชื่อของพวกเขาคือ Sarah บันทึกที่สองมี nhanvien_id คือ 11 พวกเขาคือ Johnson และชื่อคือ Dale
คำสั่งข้างต้นเทียบเท่ากับคำสั่ง INSERT ด้านล่าง
INSERT INTOanvien
(nhanvien_id, ho, ten)
VALUES
(10, 'Anderson', 'Sa
rah');
INSERT INTOanvien
(nhanvien_id, ho, ten)
VALUES
(11, 'Johnson', 'Dal
e');
ตัวอย่างเช่น - ใช้คำหลัก DEFAULT VALUES
INSERT INTO nhanvien
(nhanvien_id, ho, ten)
DEFAULT VA
LUES;
คำสั่ง INSERT นี้จะแทรกระเบียนลงในตาราง ระเบียนใหม่จะถูกสร้างขึ้นโดยค่าเริ่มต้นสำหรับช่องข้อมูลรหัสพนักงาน ครอบครัว และชื่อ
ตัวอย่างเช่น - ใช้คำสั่ง SELECT
เป็นไปได้ที่จะสร้างคำสั่ง INSERT ที่ซับซ้อนยิ่งขึ้นด้วยคำสั่ง SELECT ดังที่แสดงด้านล่าง
INSERT INTO danhba
(danhba_id, ho, ten)
SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE nhanvien_id
<= 100;
การวางคำสั่ง SELECT ไว้ในคำสั่ง INSERT จะช่วยให้คุณเพิ่มการแทรกได้เร็วขึ้น
ด้วยการแทรกประเภทนี้ คุณอาจต้องการตรวจสอบจำนวนแถวที่จะแทรก กำหนดจำนวนแถวที่จะแทรกโดยใช้คำสั่ง SELECT ก่อนการแทรก
พี>SELECT count (*)
FROM nhanvien
WHERE nha
nvien_id <= 100;