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