แอปเปิล เราจะดูสถิติเหล่านี้ บางทีอาจเป็นสถิติที่สำคัญที่สุดบางส่วนแบบสอบถาม SQL - เซแบบสอบถามเพิ่มเติมและลบบันทึกจากตารางฐานข้อมูล - สะเก็ดเกิดขึ้นบ่อยมากเพิ่มบันทึกใหม่ลงในตาราง และความเป็นหุ่นยนต์ในโหมดอัตโนมัติ
จากนั้นวัสดุนี้จะถูกผูกมัดจนกว่าจะมีการใช้งาน สำหรับซังนั้น แบบสอบถาม SQL สำหรับข้อมูลเพิ่มเติมรายการใหม่:
มีโต๊ะ
INSERT INTO ผู้ใช้ (เข้าสู่ระบบ, ผ่าน) ค่า ("TestUser", "123456") เมื่อคุณเพิ่มบันทึกคำสั่งจะทำงานทันทีใส่เข้าไป "แล้วชื่อของตารางที่แทรกบันทึก ต่อไปไปที่แขนกลม และตั้งชื่อเขตข้อมูลที่คุณต้องการกรอก จากนั้นไปที่แขนกลมหลังคำว่า "ค่านิยม
เรากำลังเริ่มประเมินค่าสูงเกินไปของฟิลด์ที่เราเลือก หลังจากรายการนี้ รายการใหม่จะปรากฏในตารางของเรา จำเป็นต้องมีไอโหนดอัพเดตรายการตาราง ซึ่งการรุกเป็นสิ่งสำคัญ:
แบบสอบถาม SQL
อัปเดตผู้ใช้ ตั้งค่าล็อกอิน = "TestUser2", pass = "1234560" WHERE เข้าสู่ระบบ = "TestUser" สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบที่ไหน “ขอนอกเรื่องเธอหน่อยแล้วไปกันทีม”อัปเดต " แล้วตามด้วยชื่อตาราง และหลัง "ชุด เราอธิบายค่าของฟิลด์ทั้งหมดที่เราต้องการเปลี่ยนแปลง หากทุกอย่างเรียบง่ายแต่อาหารหยุดลง:และคุณควรติดตามบันทึกประเภทใด? สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบ“มันจำเป็นสำหรับใคร” ". ในถึงผู้ชายคนนี้ เรากำลังอัปเดตบันทึกฟิลด์ "เข้าสู่ระบบ “มีความหมายอะไร”ผู้ใช้ทดสอบ โปรดทราบว่าหากมีบันทึกดังกล่าวเพียงไม่กี่รายการแล้วทุกอย่างจะได้รับการอัปเดตอย่างแน่นอน
- สิ่งสำคัญมากคือต้องเข้าใจ ไม่เช่นนั้น คุณเสี่ยงที่จะเสียโต๊ะ สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบมาพูดคุยกันอีกหน่อยเกี่ยวกับ " นอกเหนือจากการตรวจสอบความเท่าเทียมกันแบบง่ายๆ แล้ว ยังมีความไม่เท่าเทียมกันบางประการ รวมถึงการดำเนินการเชิงตรรกะด้วย:і และ.
หรือ< 15 AND login="TestUser"
อัปเดตผู้ใช้ SET เข้าสู่ระบบ = TestUser2, pass = 1234560 WHERE id ซึ่งการรุกเป็นสิ่งสำคัญเดนมาร์ก อัปเดตบันทึกเหล่านั้นรหัส 15 Іมีน้อยกว่านั้น เรากำลังอัปเดตบันทึกฟิลด์ "สนาม " “มีความหมายอะไร”"อาจจะสำคัญ" สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบ“ฉันหวังว่าคุณจะเข้าใจการออกแบบนี้” สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบ“นั่นสำคัญกว่าอีกเหมือนกัน” “วิโคริสที่การเลือกบันทึกจากตาราง
และนี่คือปัญหาที่มักพบบ่อยที่สุดเมื่อทำงานกับฐานข้อมูล ในที่สุดฉันก็เรียบง่าย:
แบบสอบถาม SQL สำหรับบันทึกที่เลือกจากตาราง
ลบจากผู้ใช้โดยที่ล็อกอิน = "TestUser2" หลังจากคำสั่ง "ลบจาก สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบ"คุณร้องเพลงได้ ไม่ว่าจะเป็นความสามารถพิเศษของพวกเขาก็ตาม
มุมมองของรายการที่ถูกลบ
หากต้องการลบระเบียนออกจากตาราง ให้ใช้คำสั่ง DELETE:
ลบจากชื่อตาราง WHERE ใจ;
ตัวดำเนินการนี้จะลบบันทึกออกจากตารางที่กำหนด (และไม่ใช่นอกค่าคอลัมน์) ที่แสดงถึงคุณค่าของจิตใจ
Umova เป็นการแสดงออกเชิงตรรกะทั้งหมดซึ่งมีการตรวจสอบการออกแบบต่างๆในการศึกษาในห้องปฏิบัติการก่อนหน้านี้
แบบสอบถามถัดไปจะแสดงบันทึกจากตารางลูกค้า โดยที่ค่าของคอลัมน์ LName เท่ากับ "Ivaniv":
ลบจากลูกค้า
โดยที่ LName = "Ivaniv"
หากตารางมีข้อมูลเกี่ยวกับไคลเอนต์หลายรายที่มีชื่อเล่นว่า Ivanov ลูกค้าทั้งหมดจะถูกลบ
แบบสอบถามถัดไปจะแสดงบันทึกจากตารางลูกค้า โดยที่ค่าของคอลัมน์ LName เท่ากับ "Ivaniv":
ในคำสั่ง WHERE คุณสามารถใช้สำหรับการเลือกข้อมูล (คำสั่ง SELECT)
การเพิ่มเติมในคำสั่ง DELETE ทำงานในลักษณะเดียวกับในคำสั่ง SELECT
แบบสอบถามถัดไปจะแสดงบันทึกจากตารางลูกค้า โดยที่ค่าของคอลัมน์ LName เท่ากับ "Ivaniv":
การสืบค้นครั้งถัดไปจะลบไคลเอ็นต์ทั้งหมดออกจากสถานที่ตั้งในมอสโก โดยที่ตัวระบุสถานที่ตั้งที่ไม่ซ้ำกันจะตามมาด้วยการสืบค้นเพิ่มเติม
WHERE IdCity IN (เลือก IdCity จากเมือง WHERE CityName = "Moscow")
Transact-SQL ขยาย SQL มาตรฐานโดยอนุญาตให้คุณเพิ่มส่วนคำสั่ง FROM อื่นลงในคำสั่ง DELETE
การสืบค้นครั้งถัดไปจะลบไคลเอ็นต์ทั้งหมดออกจากสถานที่ตั้งในมอสโก โดยที่ตัวระบุสถานที่ตั้งที่ไม่ซ้ำกันจะตามมาด้วยการสืบค้นเพิ่มเติม
ส่วนขยายนี้ ซึ่งมีการระบุการรวม สามารถใช้แทนส่วนคำสั่งที่ซ้อนกันในส่วนคำสั่ง WHERE เพื่อแทรกแถวที่กำลังถูกลบ
ช่วยให้คุณสามารถระบุข้อมูลจาก FROM อื่นและลบแถวรองออกจากตารางจาก FROM แรก Zokrema แถวหน้าสามารถคัดลอกในลักษณะนี้ได้จากลูกค้า k เข้าร่วมภายใน
การดำเนินการลบบันทึกออกจากตารางไม่ปลอดภัย เนื่องจากมีความเกี่ยวข้องกับความเสี่ยงของการสูญเสียข้อมูลที่ไม่สามารถเพิกถอนได้เนื่องจากข้อผิดพลาดทางความหมาย (แทนที่จะเป็นทางวากยสัมพันธ์) ในระหว่างการสร้างไวรัส SQL
เพื่อหลีกเลี่ยงความไม่สอดคล้องกัน ก่อนที่จะลบรายการ ขอแนะนำให้คุณเลือกรายการที่เลือกก่อนเพื่อดูว่ารายการใดที่จะถูกลบตัวอย่างเช่น ก่อนที่จะค้นหาคำถามที่ดูก่อนหน้านี้ อย่าตั้งค่าการค้นหาปัจจุบันสำหรับการเลือก
เลือก * “ขอนอกเรื่องเธอหน่อยแล้วไปกันทีม”เมือง c ON k.IdCity = c.IdCity และ c.CityName = "มอสโก"
“ขอนอกเรื่องเธอหน่อยแล้วไปกันทีม”<имя таблицы>
SET (image = (แบบฟอร์มคำนวณมูลค่ารายการ
- โมฆะ
- ค่าเริ่มต้น),...)
[(ที่ไหน<предикат>}];
ด้วยความช่วยเหลือของตัวดำเนินการหนึ่งตัว คุณสามารถตั้งค่าของตัวดำเนินการจำนวนเท่าใดก็ได้ “ขอนอกเรื่องเธอหน่อยแล้วไปกันทีม”ป้องกันในตัวดำเนินการเดียวกัน สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบคุณสามารถเปลี่ยนแปลงสกินของแต่ละตารางที่กำหนดได้เพียงครั้งเดียว
สำหรับความเฉพาะเจาะจงของข้อเสนอ แถวทั้งหมดของตารางจะได้รับการอัปเดตเนื่องจากโดยทั่วไปจะอนุญาตให้มีค่า NULL จึงสามารถระบุได้อย่างชัดเจน
นอกจากนี้ คุณสามารถแทนที่ค่าด้วยค่าสำหรับการคำนวณ ( ค่าเริ่มต้นі ) สำหรับรายการนี้แน่นอนว่าเหมือนกับข้อมูลของ stovptsiv ความละเอียดสูง.
แกะ พวกเขาบ้าสำหรับประเภทที่กำหนด คุณสามารถใช้แบบฟอร์มต่อไปนี้: หล่อหากคุณต้องการเปลี่ยนแปลงข้อมูลอย่างระมัดระวังแทนขั้นตอนใดๆ คุณสามารถติดต่อเราได้อย่างรวดเร็ว
กรณี - ให้เราบอกว่ามีข้อกำหนดที่จะใส่ฮาร์ดดิสก์ ด้วยปริมาณ 20 GB บนโน้ตบุ๊กพีซีที่มีหน่วยความจำน้อยกว่า 128 MB และ 40 GB บนโน้ตแพดพีซีอื่น ๆ จากนั้นคุณสามารถเขียนคำสั่งต่อไปนี้:จำเป็นต้องพูดสองสามคำเกี่ยวกับรายการที่เพิ่มอัตโนมัติ Yakshcho stovpetsรหัส
ในตาราง - ให้เราบอกว่ามีข้อกำหนดที่จะใส่แล็ปท็อป
กำหนดให้เป็น “ขอนอกเรื่องเธอหน่อยแล้วไปกันทีม”ตัวตน(1,1) จากนั้นผู้ดำเนินการฝ่ายรุกแน่นอนว่ายังมีค่านิยมอีกชุดหนึ่ง
=5 โต๊ะไม่ถูกตำหนิ ตัวดำเนินการ Transact-SQL ขยายมาตรฐานสำหรับกรอบการทำงานของ vikoristan ของข้อเสนอที่ไม่ใช่ภาษาจาก - ข้อเสนอนี้ระบุตารางที่ให้เกณฑ์สำหรับการดำเนินการอัพเดต ความยืดหยุ่นเพิ่มเติมนี้มาจากการทำงานของโต๊ะร่วมก้น
- กรุณาระบุ "ไม่มีเครื่องคอมพิวเตอร์" ที่สถานี
เลือก * พิมพ์สำหรับพีซีรุ่นเหล่านี้จากตาราง
หลังจากคำสั่ง "<имя таблицы > ;
ผลิตภัณฑ์ สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบพีซี
- วิธีแก้ปัญหาสำหรับตารางนี้สามารถเขียนได้ดังนี้: คำสั่งลบลบ พิมพ์ลบแถวออกจากตารางฐาน จอแสดงผล หรือเคอร์เซอร์ตามเวลาหรือถาวร และในสองประเภทที่เหลือ งานของผู้ปฏิบัติงานจะถูกขยายบนตารางฐาน ซึ่งข้อมูลจะรวมอยู่ในจอแสดงผลหรือเคอร์เซอร์
ตัวดำเนินการระยะไกลมีไวยากรณ์ง่ายๆ:
ข้อเสนอคืออะไร?
ทุกวัน แถวทั้งหมดจากตารางหรือลักษณะที่ปรากฏจะถูกลบออก (วันที่อาจได้รับการอัปเดต) การดำเนินการนี้ (การลบแถวทั้งหมดออกจากตาราง) Transact-SQL สามารถทำได้โดยใช้คำสั่งเพิ่มเติมการป้องกันเป็นการใช้ความพยายามเพียงเล็กน้อยในการดำเนินการตามคำสั่ง ตัดทอนตารางตามข้อกำหนดของผู้ปฏิบัติงาน
4. ความสำคัญของแพทย์ ( ตัวตน) มีส่วนลดตามมูลค่าซัง
=5 โต๊ะไม่ถูกตำหนิ - จำเป็นต้องลบออกจากตาราง ด้วยปริมาณ 20 GB บนโน้ตบุ๊กพีซีที่มีหน่วยความจำน้อยกว่า 128 MB และ 40 GB บนโน้ตแพดพีซีอื่น ๆ จากนั้นคุณสามารถเขียนคำสั่งต่อไปนี้:โน้ตบุ๊กพีซีทั้งหมดที่มีขนาดหน้าจอน้อยกว่า 12 นิ้ว
TRUNCATE โต๊ะแล็ปท็อป |
Transact-SQL ขยายไวยากรณ์คำสั่ง พิมพ์ขอแนะนำข้อเสนอเพิ่มเติม จากนั้นผู้ดำเนินการฝ่ายรุก
จากนั้นผู้ดำเนินการฝ่ายรุก<источник табличного типа>
เพื่อขอความช่วยเหลือต่อไป ประเภทตาราง Dzherelaสามารถระบุข้อมูลที่ปรากฏในตารางในย่อหน้าแรกได้ จากนั้นผู้ดำเนินการฝ่ายรุก.
สำหรับข้อเสนอเพิ่มเติมนี้ คุณสามารถเพิ่มตารางที่ต่อกัน ซึ่งจะแทนที่ตัวแปรตัวห้อยในแม่น้ำอย่างมีเหตุผล สามารถพับเก็บได้มากขึ้นเนื่องจากการออกแบบเพื่อระบุแถวที่กำลังจะถูกลบ
เรามาอธิบายสิ่งที่พูดพร้อมตัวอย่างกันดีกว่า - ข้อเสนอนี้ระบุตารางที่ให้เกณฑ์สำหรับการดำเนินการอัพเดตโปรดอย่าลังเลที่จะลบรุ่นพีซีเหล่านี้ออกจากตาราง ความยืดหยุ่นเพิ่มเติมนี้มาจากการทำงานของโต๊ะร่วม.
ซึ่งไม่มีแถวเฉพาะเจาะจงในตาราง
ในไวยากรณ์มาตรฐานของ Vikorist สามารถเขียนได้ดังนี้: การเชื่อมต่อภายนอกเข้ามามีบทบาทที่นี่ด้วยเหตุนี้พีซีโมเดล ความยืดหยุ่นเพิ่มเติมนี้มาจากการทำงานของโต๊ะร่วมสำหรับพีซีรุ่นต่างๆ ในตาราง
ซึ่งจะมีค่า NULL ซึ่งจะถูกใช้เพื่อระบุแถวที่สามารถลบได้คำแนะนำ อัปเดต
ใช้เครื่องมือเพื่อเปลี่ยนแถวของตาราง คำสั่งนี้ใช้รูปแบบที่เป็นทางการดังต่อไปนี้:แถวของตาราง tab_name ถูกเลือกสำหรับการเปลี่ยนแปลงโดยขึ้นอยู่กับส่วนคำสั่ง WHERE
ความสำคัญของสภาพผิวที่ต้องปรับเปลี่ยน เปลี่ยนแปลง เพื่อช่วย
ข้อเสนอ ตลท
คำสั่ง UPDATE ซึ่งจัดหาตัวแปรหรือค่าคงที่ให้กับอนุประโยคย่อย
เนื่องจากมีคำสั่งย่อย WHERE อยู่ คำสั่ง UPDATE จะแก้ไขแถวทั้งหมดในตาราง
ด้วยคำสั่ง UPDATE เพิ่มเติม ข้อมูลจะสามารถแก้ไขได้ในตารางเดียวเท่านั้น
สอดคล้องกับคำถามนี้ สำหรับมหาวิทยาลัย Vershina Natalia ค่า NULL ถูกกำหนดให้กับโครงการทั้งหมด
แอปพลิเคชันนี้สามารถป้อนได้โดยใช้คำสั่งย่อยเพิ่มเติมจากคำสั่ง FROM UPDATE ส่วนคำสั่ง FROM ระบุชื่อตารางที่ถูกประมวลผลโดยคำสั่ง UPDATEตารางทั้งหมดนี้เคยเชื่อมต่อกันมาก่อน
คำจำกัดความของข้อเสนอ FROM แสดงอยู่ในตัวอย่างด้านล่าง
ตามเหตุผลแล้ว ก้นนี้เหมือนกับอันแรก:
ตัวอย่างด้านล่างแสดง vikoristannya
กรณีวิราซี
ในคำแนะนำ UPDATE
(รายงานเกี่ยวกับเงื่อนไขนี้ได้อธิบายไว้ก่อนหน้านี้) ในกรณีนี้ จำเป็นต้องเพิ่มงบประมาณของโครงการทั้งหมดเป็นจำนวนเล็กน้อย (20, 10 หรือ 5) ขึ้นอยู่กับงบประมาณผลผลิต: ยิ่งงบประมาณน้อยลง แล้วอาจมีเพิ่มขึ้นมากกว่า 100%:
ใช้ SampleDb;
อัปเดตงบประมาณชุดโครงการ = กรณีที่งบประมาณ > 0 และงบประมาณ 100000 และงบประมาณ
ลบคำสั่ง
คำสั่ง DELETE จะลบแถวในตาราง
เช่นเดียวกับคำสั่ง INSERT คำสั่งนี้ยังมาในรูปแบบที่แตกต่างกันสองรูปแบบ: แถวทั้งหมดปรากฏขึ้นซึ่งตรงกับใจของส่วนคำสั่ง WHEREคำแนะนำและข้อเสนอเพิ่มเติมต่อไปนี้สำหรับการแก้ไขตารางได้รับการสนับสนุน:
คำสั่ง TRUNCATE TABLE;
คำสั่งผสาน;
เอาท์พุทข้อเสนอ
คำแนะนำและข้อเสนอเหล่านี้มีให้เห็นในรุ่นต่อไป
คำสั่ง TRUNCATE TABLE
คำสั่ง TRUNCATE TABLEนี่คือเวอร์ชันล่าสุดของคำสั่ง DELETE ที่ไม่มีส่วนคำสั่ง WHERE
คำสั่งนี้จะลบแถวทั้งหมดของตารางด้านล่าง คำสั่ง DELETE อันล่างจะลบแฟรกเมนต์แทนทีละแถว ในขณะที่คำสั่ง DELETE จะทำงานเรียงกันเป็นแถว
คำสั่ง TRUNCATE TABLE เป็นส่วนขยายของมาตรฐาน Transact-SQL SQL
คุณลักษณะที่สำคัญอีกประการหนึ่งของคำสั่งนี้คือ รีเซ็ตดัชนีของคอลัมน์ที่ระบุกำลังการเพิ่ม IDENTITY อัตโนมัติ
คุณลักษณะที่สำคัญอีกประการหนึ่งของคำสั่งนี้คือ รีเซ็ตดัชนีของคอลัมน์ที่ระบุกำลังการเพิ่ม IDENTITY อัตโนมัติคำสั่ง TRUNCATE TABLE มีไวยากรณ์ดังต่อไปนี้:
ตัดทอนตาราง table_name คำแนะนำการรวมลำดับสุดท้ายของคำสั่ง INSERT, UPDATE และ DELETE ลงในคำสั่งพื้นฐานเดียวจำเป็นต้องเริ่มการบันทึก (แถว) กล่าวอีกนัยหนึ่งคุณสามารถซิงโครไนซ์สองตารางที่แตกต่างกันเพื่อแก้ไขค่าในตารางตามประเภทของรายการที่ระบุใน table-jerelพื้นที่หลักของแอปพลิเคชันสำหรับคำสั่ง MERGE คือกึ่งกลางของการรวบรวมข้อมูลซึ่งจะต้องรีเฟรชตารางเป็นระยะเพื่อแสดงข้อมูลใหม่ที่มาจาก
OLTP (On-Line Transaction Processing) ระบบประมวลผลธุรกรรม
- ข้อมูลนี้อาจมีการเปลี่ยนแปลงไปยังแถวอื่นๆ ในตารางหรือ
แถวใหม่ ซึ่งจำเป็นต้องแทรกลงในตารางเมื่อชุดข้อมูลใหม่ตรงกับบันทึกที่มีอยู่ในตารางแล้ว คำสั่ง UPDATE หรือ DELETE จะถูกป้อน
ในอีกกรณีหนึ่ง คำสั่ง INSERT จะสิ้นสุดลง
ผลลัพธ์ของการดำเนินการใดๆ ที่เกี่ยวข้องกับคำสั่งเฉพาะจะแสดงโดยใช้ข้อเสนอ OUTPUT ในตารางที่แทรกและลบ
นอกจากนี้ ในการเติมตาราง คุณต้องใช้นิพจน์ INTO ในบรรทัด OUTPUTดังนั้น เพื่อบันทึกผลลัพธ์ จึงมีการใช้การเปลี่ยนแปลงตาราง หยุดนิ่งจนกระทั่ง:ฐานข้อมูล SQL Server (เริ่มตั้งแต่ปี 2008)
ข้อมูล SQL
คลังข้อมูล Azure SQL คลังข้อมูล AzureParallel ลบอย่างน้อยหนึ่งแถวออกจากตารางหรือมุมมอง SQL Server
[server_name.database_name.schema_name.<обобщенное- ฐานข้อมูล_ชื่อ[สคีมา_ชื่อ]
- สคีมา_ชื่อ
-
table_or_view_name) (กับ)
แบบตาราง
วิราซ> กับตั้งค่าชุดผลลัพธ์ของชื่อพร้อมกันรวมถึงชื่อที่ระบุในรูปแบบตารางซึ่งระบุไว้ในพื้นที่การดำเนินการของคำสั่ง DELETE
ชุดผลลัพธ์จะออกมาจากคำสั่ง SELECT
นิพจน์ตารางปกติสามารถแก้ไขได้ในคำสั่ง SELECT, INSERT, UPDATE และ CREATE VIEW หากต้องการลบแผ่นข้อมูลเพิ่มเติมสูงสุด การแสดงออก.
[เปอร์เซ็นต์]
ตั้งค่าจำนวนหรือจำนวนแถวที่แสดง อาจเป็นตัวเลขหรือหลายร้อยแถวก็ได้แถวที่ร้องขอโดยนิพจน์ TOP ซึ่งรวมกับคำสั่ง INSERT, UPDATE และ DELETE จะไม่เรียงลำดับ
หากต้องการลบแผ่นข้อมูลเพิ่มเติม
จาก หากต้องการลบแผ่นข้อมูลเพิ่มเติมคีย์เวิร์ดที่ไม่ใช่ภาษาที่สามารถใช้ร่วมกับคีย์เวิร์ด DELETE และเพื่อวัตถุประสงค์อื่นได้ table_or_view_name , หรือ rowset_function_limitedі table_aliasชื่อเล่น งานเพื่อสายน้ำ
table_or_view_name , หรือ rowset_function_limited
table_source
table_alias
คำที่แสดงถึงตารางหรือคำสั่งที่มองเห็นแถวได้
เซิร์ฟเวอร์_ชื่อ
ชื่อเซิร์ฟเวอร์ (จากชื่อที่เกี่ยวข้องของเซิร์ฟเวอร์ที่เกี่ยวข้องหรือฟังก์ชันเป็นชื่อเซิร์ฟเวอร์) ที่จะขยายตารางหรือคำสั่ง
ยักชโช
สั่ง, หากต้องการลบแผ่นข้อมูลเพิ่มเติมฉัน
การแสดงออก
หมุนแถวหรือนิพจน์ที่วางอยู่บนแถวหรือนิพจน์โดยเป็นส่วนหนึ่งของการดำเนินการ DELETE
ส่วนคำสั่ง OUTPUT ไม่ได้รับการสนับสนุนในคำสั่ง DML ปกติที่ส่งตรงไปยังตารางที่แสดง อาจเป็นตัวเลขหรือหลายร้อยแถวก็ได้
หากต้องการลบแผ่นข้อมูลเพิ่มเติม
ระบุข้อเสนอเพิ่มเติม FROM
ส่วนขยาย Transact-SQL นี้ DELETE ช่วยให้คุณสามารถระบุข้อมูลได้
จากนั้นลบแถวที่เกี่ยวข้องออกจากตารางในแถวแรก
ส่วนขยายนี้ ซึ่งมีการระบุการรวม สามารถใช้แทนส่วนคำสั่งที่ซ้อนกันในส่วนคำสั่ง WHERE เพื่อแทรกแถวที่กำลังถูกลบ
หากต้องการลบแผ่นข้อมูลเพิ่มเติม
ที่ไหน ระบุการซักที่ใช้เพื่อกำหนดจำนวนแถวที่จะถอดออก = หากไม่ได้ระบุส่วนคำสั่ง WHERE คำสั่ง DELETE จะลบแถวทั้งหมดในตาราง.
การดำเนินการสองประเภทได้ถูกถ่ายโอนแล้ว ซึ่งคล้ายกับที่ระบุไว้ในส่วนคำสั่ง WHERE การดำเนินการลบด้วยการค้นหาระบุการค้นหาทางจิตเพื่อชี้แจงแถวที่จะถูกลบตัวอย่างเช่น DE
คอลัมน์_ชื่อ
ความสำคัญ
การดำเนินการเบื้องหลังตำแหน่งจะใช้ข้อเสนอ CURRENT OF เพื่อแทรกลงในเคอร์เซอร์
ซึ่งจะแสดงที่ตำแหน่งที่แน่นอนของเคอร์เซอร์
แม้ว่ามันอาจจะแม่นยำกว่า แต่คำสั่ง DELETE ที่ต่ำกว่าก็พบว่าเป็นข้อเสนอที่ดี ค้นหา_เงื่อนไขข้อเสนอการแทรกแถวที่ปรากฏ
ค้นหา_เงื่อนไข
คำสั่ง DELETE ดูเหมือนจะลบแถวจำนวนหนึ่ง เนื่องจากไม่ชัดเจนว่าแถวใดแถวหนึ่งไม่ซ้ำกัน ค้นหา_เงื่อนไขระบุเครื่องหมายสำหรับแถวที่อยู่ห่างไกล
ไม่จำกัดจำนวนภาคที่สามารถรบกวนจิตใจได้
หากต้องการลบแผ่นข้อมูลเพิ่มเติม
ปัจจุบันของ (
ทั่วโลก
หากต้องการลบแถวทั้งหมดในตาราง ให้ใช้คำสั่ง TRUNCATE TABLE
คำสั่ง TRUNCATE TABLE นั้นด้อยกว่าคำสั่ง DELETE ซึ่งใช้ทรัพยากรระบบและทรัพยากรบันทึกธุรกรรมน้อยกว่า
คำสั่ง TRUNCATE TABLE สามารถใช้แทนกันได้ ตัวอย่างเช่น ตารางไม่สามารถมีส่วนร่วมในการจำลองแบบได้
หากต้องการลบแผ่นข้อมูลเพิ่มเติม
ใช้ฟังก์ชัน @@ROWCOUNT เพื่อหมุนแถวระยะไกลของโปรแกรมไคลเอนต์
หากต้องการลบแผ่นข้อมูลเพิ่มเติม สำหรับคำสั่ง DELETE คุณสามารถดำเนินการประมวลผลความเสียหายได้โดยการวางไว้ในโครงสร้าง TRY…CATCHด้วยคำสั่ง DELETE ต่อไปนี้ อาจมีปัญหาเนื่องจากจะทำลายทริกเกอร์หรือพยายามลบแถวที่มีข้อมูลในตารางอื่นโดยใช้คีย์ต่างประเทศเพิ่มเติม
หากคำสั่ง DELETE ลบแถวจำนวนหนึ่งออก และแถวใดแถวหนึ่งที่อยู่ไกลออกไปทำลายทริกเกอร์การแลกเปลี่ยน คำสั่งก็จะได้รับผลกระทบเช่นกัน เค้กหมุนไปรอบๆ และมองไม่เห็นแถวในกรณีที่มีข้อผิดพลาดทางคณิตศาสตร์ (การแก้ไขมากเกินไป การหารเป็นศูนย์ หรือเกินค่าที่อนุญาต) ที่เกิดขึ้นระหว่างการคำนวณไวรัสเมื่อมีการดำเนินการคำสั่ง DELETE ที่ถูกลบ ส่วนประกอบ Database Engine จะถูกประมวลผลในระหว่างที่เกิดข้อผิดพลาด หรือพารามิเตอร์ SET ARITHABORT ค่าเปิด
ส่วนของการดำเนินการแบตช์ที่สูญหายจะถูกเช็คเอาท์ และการแจ้งเตือนเกี่ยวกับการสูญหายจะปรากฏขึ้น
คำสั่ง DELETE สามารถรวมไว้ในข้อความของฟังก์ชันซึ่งกำหนดโดยผู้ใช้เป็น
วัตถุที่เปลี่ยนแปลงได้
หลังจากนั้น คำสั่ง DELETE จะปล่อยการล็อกเอกสิทธิ์เฉพาะบุคคล (X) บนโต๊ะที่กำลังมีการเปลี่ยนแปลงทันที และคงการล็อกไว้จนกว่าธุรกรรมจะเสร็จสมบูรณ์
หากทรัพยากรอยู่ภายใต้การล็อคแบบเอกสิทธิ์เฉพาะบุคคล (X) ธุรกรรมอื่น ๆ จะไม่สามารถเปลี่ยนแปลงข้อมูลได้ การดำเนินการอ่านจะได้รับอนุญาตก็ต่อเมื่อมีคำใบ้ NOLOCK หรือมีระดับการแยกการดำเนินการอ่านที่ไม่มีข้อผูกมัดอยู่คุณสามารถกำหนดพฤติกรรมของเครื่องมือเพิ่มประสิทธิภาพคิวรีใหม่ได้โดยใช้คำแนะนำตารางสำหรับชั่วโมงของการป้อนคำสั่ง DELETE โดยใช้วิธีบล็อกอื่น มิฉะนั้น ขอแนะนำให้ใช้คำแนะนำและผู้ดูแลระบบฐานข้อมูลและเฉพาะในกรณีที่มีความจำเป็นอย่างยิ่งเท่านั้น
หากต้องการลบแผ่นข้อมูลเพิ่มเติม
หากมีแถวพร้อมสำหรับการซื้อ โปรแกรมฐานข้อมูลสามารถเลือกแถวหรือด้านที่บล็อกสำหรับการดำเนินการได้
ส่งผลให้
ด้านที่ว่างเปล่า
ซึ่งเมื่อสรุปธุรกรรมแล้ว คุณจะขาดสิทธิ์ในการซื้อ
หากไม่ถูกปล่อยออกมา จะไม่สามารถเพิ่มสถานที่ที่พวกมันถูกครอบครองลงในอ็อบเจ็กต์ฐานข้อมูลอื่นได้
หากต้องการลบแถวออกจากการซื้อและลบหน้า ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้
ใช้คำสั่ง TABLOCK ในคำสั่ง DELETE ตัวเลือก TABLOCK จะทำให้แน่ใจได้ว่าในขณะที่ใช้งาน จะมีการติดตั้งตัวล็อคโต๊ะแบบพิเศษ แทนที่จะติดตั้งตัวล็อคแบบแถวหรือด้านข้าง เพื่อให้สามารถปลดล็อคด้านข้างได้หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับพรอมต์ TABLOCK ให้ div หากตารางทั้งหมดถูกลบออกจากตาราง ให้ใช้คำสั่ง TRUNCATE TABLEі ก่อนที่จะเลือกแถว ให้สร้างดัชนีการจัดกลุ่มจากนั้นคุณสามารถลบมันได้ ตัวเลือก TABLOCK จะทำให้แน่ใจได้ว่าในขณะที่ใช้งาน จะมีการติดตั้งตัวล็อคโต๊ะแบบพิเศษ แทนที่จะติดตั้งตัวล็อคแบบแถวหรือด้านข้าง เพื่อให้สามารถปลดล็อคด้านข้างได้, หากตารางทั้งหมดถูกลบออกจากตาราง ให้ใช้คำสั่ง TRUNCATE TABLEі วิธีนี้จะใช้เวลานานกว่าและประหยัดทรัพยากรรายชั่วโมงมากขึ้นคำสั่ง DELETE จะถูกบันทึกไว้เสมอ
สิทธิ์
จำเป็นต้องมีสิทธิ์ DELETE สำหรับตารางเป้าหมาย
สิทธิ์ SELECT ก็จำเป็นเช่นกัน เนื่องจากจะแนะนำให้คุณวางส่วนคำสั่ง WHERE
ขั้นตอนต่อไปจะลบแถวทั้งหมดออกจากตาราง SalesPersonQuotaHistory ในฐานข้อมูล AdventureWorks2012 เนื่องจากไม่ได้ระบุ WHERE clause ซึ่งจะล้อมรอบจำนวนแถวที่มองเห็นได้
ลบออกจาก Sales.SalesPersonQuotaHistory;ไป
การแบ่งแถวที่มองเห็นได้
ในส่วนนี้ เราจะอธิบายวิธีการตัดแถวจำนวนหนึ่งที่ถูกลบออก
A. การเปลี่ยนแปลงคำสั่ง WHERE สำหรับการเลือกชุดแถว
ขั้นตอนต่อไปจะแสดงแถวทั้งหมดของตาราง ProductCostHistory ในฐานข้อมูล AdventureWorks2012 ที่มีค่าในคอลัมน์ StandardCost มากกว่า 1000.00
ก้นด้านหน้าแสดงข้อเสนอการพับแทน WHERE
ส่วนคำสั่ง WHERE กำหนดจิตใจสองดวงที่รับผิดชอบในการกำหนดแถวที่จะถูกลบ
ค่าในคอลัมน์ StandardCost อยู่ในช่วงตั้งแต่ 12.00 ถึง 14.00 น. และค่าในคอลัมน์ SellEndDate จะเป็น NULL แอปพลิเคชันนี้ยังแสดงฟังก์ชัน **@@ROWCOUNT** สำหรับการหมุนจำนวนแถวที่ห่างไกล B. ใช้เคอร์เซอร์เพื่อเลือกแถวที่มองเห็นได้
ขั้นตอนต่อไปคือหนึ่งแถวที่มี EmployeePayHistory ในตารางฐานข้อมูล AdventureWorks2012 ด้านหลังเคอร์เซอร์เพิ่มเติม my_cursor<>การดำเนินการระยะไกลเสร็จสมบูรณ์สำหรับแถวที่เลือกเพียงแถวเดียวเท่านั้นช่วงเวลาแห่งเดนมาร์ก เคอร์เซอร์.ประกาศเคอร์เซอร์ complex_cursor สำหรับการเลือก a.BusinessEntityID จาก HumanResources.EmployeePayHistory AS a WHERE RateChangeDate (เลือกสูงสุด (RateChangeDate) จาก HumanResources.EmployeePayHistory AS b โดยที่ a.BusinessEntityID = b.BusinessEntityID) ;ไป
เปิด complex_cursor;
ดึงข้อมูลจาก complex_cursor;
ลบออกจาก HumanResources.EmployeePayHistory โดยที่ปัจจุบันของ complex_cursor;
ปิด complex_cursor; ระบุคำสั่ง DELETE ต่อไปนี้ที่ตำแหน่งบรรทัดที่กำหนดให้กับเคอร์เซอร์ DEALLOCATE complex_cursor; ระบุคำสั่ง DELETE ต่อไปนี้ที่ตำแหน่งบรรทัดที่กำหนดให้กับเคอร์เซอร์แถว
ก้นที่น่ารังเกียจแสดง 20 แถวจากตาราง PurchaseOrderDetail ในฐานข้อมูล AdventureWorks2012 ซึ่งมีวันที่ก่อนวันที่ 1 มิถุนายน 2549:
หากจำเป็นสำหรับข้อเสนอเพิ่มเติม TOP เพื่อลบแถวตามลำดับเวลาที่สำคัญ จากนั้นในคำแนะนำสำหรับแบบสอบถามการเลือกที่ฝังไว้ ให้เลือก ORDER BY ทันที
แบบสอบถามที่กำลังจะเกิดขึ้นจะแสดง 10 แถวในตาราง PurchaseOrderDetail ที่ระบุวันที่เริ่มต้น
เพื่อให้แน่ใจว่ามองเห็นได้มากกว่า 10 แถว แถวในคำสั่งการเลือก (PurchaseOrderID) จะต้องเป็นคีย์แรกของตารางการเพิ่มส่วนคำสั่งที่ไม่ใช่คีย์ในคำแนะนำการใช้พลังงานในการเลือกอาจส่งผลให้มีแถวมากกว่า 10 แถว เนื่องจากคำแนะนำมีแนวโน้มที่จะรวมค่าที่ซ้ำกัน |
การดูแถวจากตารางระยะไกล
ในส่วนนี้ เราจะอธิบายวิธีการลบแถวออกจากตารางระยะไกลโดยส่งผู้ชนะไปยังตารางระยะไกลหรือ ตารางที่ถูกลบอยู่บนเซิร์ฟเวอร์อื่นหรืออินสแตนซ์ของ SQL Server.
ติดจนได้.
: จาก SQL Server 2008 ถึง SQL Server 2016
A. การลบข้อมูลจากตารางระยะไกลด้านหลังเซิร์ฟเวอร์ที่เชื่อมโยงเพิ่มเติม
ในหน้าถัดไป คุณจะเห็นแถวในตารางระยะไกล
ก้นเริ่มต้นด้วยข้อความเขียนไปยังสถานที่ห่างไกลเพื่อขอความช่วยเหลือ หากต้องการลบแผ่นข้อมูลเพิ่มเติมอันดับแรก ชื่อของเซิร์ฟเวอร์ที่เชื่อมโยง MyLinkServer จะแสดงเป็นส่วนหนึ่งของชื่อออบเจ็กต์ในมุมมอง.