SQL सर्वर (Transact-SQL) में DELETE स्टेटमेंट का उपयोग SQL सर्वर में किसी तालिका से एक या अधिक रिकॉर्ड को हटाने के लिए किया जाता है।
SQL सर्वर में कमांड सिंटैक्स हटाएं
DELETE कमांड का सरल सिंटैक्स इस प्रकार है।
DELETE FROM bang
[WHERE dieu_kien];
DELETE कमांड का पूरा सिंटैक्स इस प्रकार है।
DELETE [TOP (giatri_dau) [PERCENT] ]
FROM bang
[WHERE dieu_kien
];
परिवर्तनीय नाम या चर मान
स्थिति
तालिका को रिकॉर्ड हटाना होगा।
जहां dieu_kien
Option. ऐसी शर्तें जिन्हें मिटाने के लिए रिकॉर्ड को पूरा करना होगा।
TOP (giatri_dau)
Option. यदि विशेष रूप से, यह giatri_dau के आधार पर पंक्ति का पहला मान सम्मिलित करेगा। उदाहरण के लिए, टॉप (10) परिणाम सेट से पहली 10 पंक्तियों को सम्मिलित करेगा।
PERCENT
Option. यदि निर्दिष्ट किया जाता है, तो पहली पंक्तियाँ परिणाम सेट के giatri_dau के प्रतिशत पर आधारित होती हैं। उदाहरण के लिए, TOP (10) PERCENT परिणाम सेट में पहले मान का 10% सम्मिलित करेगा।
नोट
DELETE कथन में फ़ील्ड्स को सूचीबद्ध करने की कोई आवश्यकता नहीं है क्योंकि आप तालिका की सभी पंक्तियों को हटा देंगे।
उदाहरण के लिए - 1 शर्त का उपयोग करें
DELETE FROM nhanvien
WHERE ten = 'Sarah';
यह आदेश कर्मचारी नाम सारा के साथ तालिका के सभी रिकॉर्ड हटा देगा।
यदि आप हटाए गए आइटमों की संख्या जांचना चाहते हैं, तो डिलीट कमांड निष्पादित करने से पहले SELECT कमांड चलाएँ।
SELECT hasun (*)
FROM nhanvien
WHERE ten = 'Sar
ah';
उदाहरण के लिए - 2 शर्तों का उपयोग करें
DELETE FROMnhanvien
WHERE ho = 'Johnson'
AND nhanvien_id >
= 80;
यदि स्टाफ का नाम जॉनसन है और nhanvien_id 80 से बड़ा या उसके बराबर है, तो यह कमांड तालिका के सभी रिकॉर्ड हटा देगा।
हटाई गई पंक्तियों की संख्या जानने के लिए, DELETE कमांड चलाने से पहले नीचे दिए गए SELECT स्टेटमेंट को रन करें।
SELECT count (*)
FROM nhanvien
WHERE ho = 'Johnson'
AND nhanvien_id
> = 80;
उदाहरण के लिए - TOP कीवर्ड का उपयोग करें
DELETETOP(3)
FROM nhanvien
WHERE ho =
'Johnson';
यह तालिका में पहले 3 रिकॉर्ड को हटा देगा जब कर्मचारी के परिवार का नाम जॉनसन होगा। यदि इस तालिका में ऐसे अन्य रिकॉर्ड हैं जिनमें जॉनसन का पारिवारिक नाम है, तो वे इस DELETE से प्रभावित नहीं होते हैं।
उदाहरण के लिए - EXISTS क्लॉज का उपयोग करें
आप अधिक जटिल डिलीट कमांड निष्पादित कर सकते हैं, जैसे कि किसी अन्य तालिका में मानों के आधार पर किसी तालिका में रिकॉर्ड हटाना, उदाहरण के लिए। क्योंकि DELETE स्टेटमेंट में FROM क्लॉज में एक से अधिक टेबल को रेंडर करना असंभव है, EXISTS क्लॉज का उपयोग निम्नानुसार किया जा सकता है।
DELETE FROMnhanvien
WHERE EXISTS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.danhba_id
<100);
यह DELETE स्टेटमेंट टेबल के सभी रिकॉर्ड्स को डिलीट कर देगा, जब नामों की सूची में एक रिकॉर्ड होगा कि श्रोता_आईडी 100 से कम है और लिस्ट_आईडी nhanvien_id से मेल खाती है।
यदि आप हटाई गई पंक्तियों की संख्या निर्धारित करना चाहते हैं, तो हटाने से पहले SELECT कमांड चलाएँ।
SELECTcount (*)
FROM nhanvien
WHERE EXITS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.da
nhba_id <100);