SQL Server (Transact-SQL)-এ DELETE স্টেটমেন্ট একটি টেবিল থেকে এক বা একাধিক রেকর্ড ডিলিট করতে ব্যবহৃত হয়।
SQL Server-এ DELETE কমান্ড সিনট্যাক্স
DELETE কমান্ডের সিম্পল সিনট্যাক্স নিচের মত।
DELETE FROM bang [WHERE dieu_kien];
DELETE কমান্ডের পূর্ণ সিনট্যাক্স নিচের মত।
DELETE [TOP (giatri_dau) [PERCENT] ] FROM bang [WHERE dieu_kien];
ভেরিয়েবল নাম বা মান
bang
রেকর্ড ডিলিট করতে চাওয়া টেবিল।
WHERE dieu_kien
ঐচ্ছিক। রেকর্ড ডিলিট হওয়ার জন্য যা শর্ত পূরণ করতে হবে।
TOP (giatri_dau)
ঐচ্ছিক। যদি নির্দিষ্ট করা হয়, giatri_dau বেসে প্রথম সারির মান ডিলিট করবে। উদাহরণ: TOP (10) রেজাল্ট সেট থেকে প্রথম ১০ সারি ডিলিট করবে।
PERCENT
ঐচ্ছিক। যদি নির্দিষ্ট করা হয়, giatri_dau পার্সেন্টেজ বেসে প্রথম সারিগুলো ডিলিট করবে। উদাহরণ: TOP (10) PERCENT রেজাল্ট সেটের প্রথম ১০% মান ডিলিট করবে।
নোট
DELETE স্টেটমেন্টে ফিল্ড লিস্ট করার প্রয়োজন নেই কারণ টেবিলের সকল সারি ডিলিট হবে।
উদাহরণ - ১ শর্ত ব্যবহার
DELETE FROM nhanvien WHERE ten = 'Sarah';
এই কমান্ড nhanvien টেবিলে নাম Sarah वाले সকল রেকর্ড ডিলিট করবে।
আপনি যদি ডিলিট হওয়া আইটেমের সংখ্যা জানতে চান, ডিলিট কমান্ড এক্সিকিউট করার আগে SELECT কমান্ড চালান।
SELECT count(*) FROM nhanvien WHERE ten = 'Sarah';
উদাহরণ - ২ শর্ত ব্যবহার
DELETE FROM nhanvien WHERE ho = 'Johnson' AND nhanvien_id >= 80;
এই কমান্ড nhanvien টেবিলের সকল রেকর্ড ডিলিট করবে যেখানে কর্মচারীর উপনাম Johnson এবং nhanvien_id ৮০ বা তার বেশি।
ডিলিট হওয়া সারির সংখ্যা জানতে, DELETE কমান্ড চালানোর আগে নিচের SELECT স্টেটমেন্ট চালান।
SELECT count(*) FROM nhanvien WHERE ho = 'Johnson' AND nhanvien_id >= 80;
উদাহরণ - TOP কীওয়ার্ড ব্যবহার
DELETE TOP(3) FROM nhanvien WHERE ho = 'Johnson';
এটি টেবিলের প্রথম ৩ রেকর্ড ডিলিট করবে যেখানে কর্মচারীর উপনাম 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 স্টেটমেন্ট nhanvien টেবিলের সকল রেকর্ড ডিলিট করবে যখন danhba টেবিলে danhba_id ১০০-এর চেয়ে কম এবং 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);