دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Class Library در سی شارپ
1404/01/10 -
دستور BREAK در پایگاه داده sql
1404/01/02 -
دستور CONTINUE در پایگاه داده SQL
1404/01/01 -
دستور WAITFOR در پایگاه داده SQL
1403/12/26 -
دستور GOTO در پایگاه داده SQL
1403/12/25 -
حلقه WHILE در پایگاه داده SQL
1403/12/24
دستور CONTINUE در پایگاه داده SQL

دستور CONTINUE در پایگاه داده SQL
دستور CONTINUE در SQL معمولاً در داخل حلقههای WHILE به کار میرود و باعث میشود اجرای حلقه از ابتدا ادامه یابد، بدون آنکه دستورات باقیمانده در تکرار جاری اجرا شوند.
این دستور زمانی مفید است که بخواهید تحت شرایط خاصی از اجرای بخشهای مشخصی از کد صرفنظر کرده و مستقیماً به ارزیابی شرط حلقه برگردید.
به عنوان مثال، در یک حلقه که رکوردهای یک جدول را بررسی میکند، میتوان با استفاده از CONTINUE از پردازش برخی رکوردهای خاص صرفنظر کرد.
این دستور باعث افزایش کارایی کد و جلوگیری از اجرای غیرضروری برخی عملیات میشود.
استفاده صحیح از CONTINUE در کنار سایر کنترلکنندههای جریان مانند BREAK میتواند در بهینهسازی عملکرد کوئریها و پردازش دادهها مؤثر باشد.
کاربردهای دستور CONTINUE در SQL
-
حذف برخی از دادهها از پردازش
اگر در یک مجموعه داده، برخی از موارد نیازی به پردازش نداشته باشند، میتوان با استفاده از CONTINUE از آنها عبور کرد. -
بهینهسازی اجرای حلقه
به جای استفاده از چندین شرط تو در تو، CONTINUE به مدیریت بهتر جریان برنامه کمک میکند. -
مدیریت استثناها
در برخی موارد خاص، اگر دادهای نیاز به پردازش نداشته باشد، میتوان با استفاده از CONTINUE اجرای آن بخش را رد کرد.
نحوه ایجاد و استفاده از دستور CONTINUE در SQL
برای درک بهتر CONTINUE، ابتدا یک مثال ساده از حلقه WHILE بدون استفاده از CONTINUE ارائه میشود:
مثال ۱: حلقه WHILE بدون استفاده از CONTINUE
DECLARE @Counter INT = 1;
WHILE @Counter <= 10
BEGIN
PRINT 'عدد: ' + CAST(@Counter AS VARCHAR);
SET @Counter = @Counter + 1;
END
نتیجه اجرای کد:
عدد: 1
عدد: 2
عدد: 3
عدد: 4
عدد: 5
عدد: 6
عدد: 7
عدد: 8
عدد: 9
عدد: 10
در این مثال، تمامی اعداد از ۱ تا ۱۰ چاپ میشوند.
مثال ۲: استفاده از CONTINUE برای رد کردن مقدار خاصی
فرض کنید که نمیخواهیم مقدار ۵ چاپ شود. در این حالت میتوان از CONTINUE استفاده کرد:
DECLARE @Counter INT = 1;
WHILE @Counter <= 10
BEGIN
IF @Counter = 5
BEGIN
SET @Counter = @Counter + 1;
CONTINUE;
END
PRINT 'عدد: ' + CAST(@Counter AS VARCHAR);
SET @Counter = @Counter + 1;
END
نتیجه اجرای کد:
عدد: 1
عدد: 2
عدد: 3
عدد: 4
عدد: 6
عدد: 7
عدد: 8
عدد: 9
عدد: 10
توضیح کد:
وقتی مقدار @Counter = 5 باشد، دستور CONTINUE اجرا میشود.
در نتیجه، مقدار ۵ چاپ نمیشود و اجرای حلقه از ابتدا ادامه پیدا میکند.
مثال ۳: استفاده از CONTINUE برای رد کردن اعداد زوج
در این مثال فقط اعداد فرد بین ۱ تا ۱۰ چاپ خواهند شد:
DECLARE @Counter INT = 1;
WHILE @Counter <= 10
BEGIN
IF @Counter % 2 = 0
BEGIN
SET @Counter = @Counter + 1;
CONTINUE;
END
PRINT 'عدد فرد: ' + CAST(@Counter AS VARCHAR);
SET @Counter = @Counter + 1;
END
نتیجه اجرای کد:
عدد فرد: 1
عدد فرد: 3
عدد فرد: 5
عدد فرد: 7
عدد فرد: 9
توضیح:
وقتی مقدار @Counter عددی زوج باشد، دستور CONTINUE باعث میشود که آن عدد چاپ نشود.
به این ترتیب فقط اعداد فرد نمایش داده میشوند.
نکات مهم درباره دستور CONTINUE در SQL
-
CONTINUE فقط درون حلقههای کنترلی مانند WHILE استفاده میشود.
-
دستور CONTINUE باعث رد کردن بقیه کدهای حلقه در آن تکرار خاص میشود.
-
برای جلوگیری از اجرای بینهایت حلقه، باید مقدار متغیر کنترلی قبل از CONTINUE افزایش داده شود.
-
بهینهسازی کد: استفاده از CONTINUE به جای چندین شرط IF تو در تو، کد را خواناتر و بهینهتر میکند.
مثال ۴: استفاده از CONTINUE در حلقه WHILE برای رد کردن مقادیر خاص از جدول
در این مثال، فرض کنید یک جدول از مشتریان داریم و میخواهیم نام همه مشتریان را چاپ کنیم، اما مشتریانی که وضعیت آنها غیرفعال (Inactive) است را رد کنیم.
-
ایجاد جدول و درج دادهها
CREATE TABLE Customers (
ID INT PRIMARY KEY,
Name VARCHAR(50),
Status VARCHAR(10)
);
INSERT INTO Customers (ID, Name, Status) VALUES
(1, 'علی', 'Active'),
(2, 'زهرا', 'Inactive'),
(3, 'محمد', 'Active'),
(4, 'سارا', 'Inactive'),
(5, 'مهدی', 'Active');
کد استفاده از CONTINUE برای نمایش فقط مشتریان فعال
sql
Copy
Edit
DECLARE @ID INT = 1;
DECLARE @Total INT = (SELECT COUNT(*) FROM Customers);
WHILE @ID <= @Total
BEGIN
DECLARE @Status VARCHAR(10);
DECLARE @Name VARCHAR(50);
SELECT @Status = Status, @Name = Name FROM Customers WHERE ID = @ID;
IF @Status = 'Inactive'
BEGIN
SET @ID = @ID + 1;
CONTINUE;
END
PRINT 'مشتری فعال: ' + @Name;
SET @ID = @ID + 1;
END
نتیجه اجرای کد:
مشتری فعال: علی
مشتری فعال: محمد
مشتری فعال: مهدی
نتیجهگیری
- دستور CONTINUE یکی از دستورات کنترلی در SQL است که به مدیریت بهتر حلقهها کمک میکند.
- با استفاده از این دستور، میتوان از اجرای بخشهایی از کد در برخی شرایط خاص جلوگیری کرد.
- این دستور معمولاً در ترکیب با حلقه WHILE استفاده میشود تا از پردازش مقادیر خاص صرفنظر شود.
- استفاده از CONTINUE باعث میشود کد خواناتر، سادهتر و کارآمدتر باشد.
مثال پروژه محور از دستور CONTINUE
پروژه: فیلتر کردن سفارشهای نامعتبر در یک سیستم فروش
شرح پروژه:
در یک فروشگاه آنلاین، جدولی به نام Orders داریم که شامل اطلاعات سفارشها است.
برخی سفارشها نامعتبر هستند (مثلاً قیمت آنها صفر است).
میخواهیم با استفاده از حلقه WHILE و دستور CONTINUE، فقط سفارشهای معتبر را پردازش کنیم.
-
ایجاد جدول سفارشها و درج دادهها
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerName VARCHAR(50),
Amount DECIMAL(10,2) -- مبلغ سفارش
);
INSERT INTO Orders (OrderID, CustomerName, Amount) VALUES
(1, 'علی', 200),
(2, 'زهرا', 0), -- سفارش نامعتبر
(3, 'محمد', 150),
(4, 'سارا', 0), -- سفارش نامعتبر
(5, 'مهدی', 300);
-
پردازش سفارشهای معتبر با استفاده از CONTINUE
DECLARE @OrderID INT = 1;
DECLARE @MaxOrders INT = (SELECT COUNT(*) FROM Orders);
WHILE @OrderID <= @MaxOrders
BEGIN
DECLARE @Amount DECIMAL(10,2);
DECLARE @CustomerName VARCHAR(50);
-- دریافت اطلاعات سفارش
SELECT @Amount = Amount, @CustomerName = CustomerName FROM Orders WHERE OrderID = @OrderID;
-- اگر مبلغ سفارش صفر باشد، این سفارش پردازش نشود و به سفارش بعدی برویم
IF @Amount = 0
BEGIN
SET @OrderID = @OrderID + 1;
CONTINUE;
END
-- پردازش سفارش معتبر
PRINT 'پردازش سفارش: ' + @CustomerName + ' - مبلغ: ' + CAST(@Amount AS VARCHAR);
-- افزایش شمارنده
SET @OrderID = @OrderID + 1;
END
-
خروجی اجرای کد:
پردازش سفارش: علی - مبلغ: 200
پردازش سفارش: محمد - مبلغ: 150
پردازش سفارش: مهدی - مبلغ: 300
نتیجه:
سفارشهای نامعتبر (با مبلغ صفر) نادیده گرفته شدند.
فقط سفارشهای معتبر پردازش شدند.
CONTINUE باعث شد که کد مرتبتر و کارآمدتر شود.
دوره های مرتبط

آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .