-Cú pháp đơn giản
WHILE condition
BEGIN
{...statements...}
END
-Cú pháp có sử dụng lệnh ngừng đột ngột (khẩn cấp)
WHILE condition
BEGIN
{...statements...}
IF condition
BEGIN
BREAK
END
END
DECLARE @cnt int
Set @cnt=0
WHILE @cnt < 10
BEGIN
PRINT 'Vi du mo phong vong lap FOR trong SQL Server cua iif.vn';
--PRINT 'Vi du mo phong vong lap FOR trong SQL Server cua iif.vn, in lan:' + cast(@cnt as nvarchar(10))
SET @cnt = @cnt + 1;
END;
PRINT 'Ket thuc mo phong vong lap FOR cua iif.vn';
-- game chim bay
-- Ví dụ 1: bay không điểm dừng
Declare @so_km int
set @so_km=0
print 'bat dau bay'
While 1=1
begin
print 'dang bay'
end
print 'ha canh an toan'
-- Ví dụ 2: bay hạ cánh khi >10km
Declare @so_km int
set @so_km=0
print 'bat dau bay'
While @so_km<=10
begin
set @so_km=@so_km+1
print 'dang bay' + cast(@so_km as nvarchar(10))
end
print 'ha canh an toan'
-- Ví dụ 3: xác định bay 100km, nếu bay qua 10km nếu độ gió >=10 thì hạ cánh
Declare @so_km int
set @so_km=0
Declare @do_gio int
set @do_gio=12
print 'bat dau bay'
While @so_km<=100
begin
set @so_km=@so_km+1
print 'dang bay' + cast(@so_km as nvarchar(10))
if @so_km>=10 AND @do_gio>10
begin
break
end
end
print 'ha canh an toan'
Xem video demo về vòng lặp trong SQL Server
Video 2: vòng lặp dữ liệu với cursor sql server
Tạo ra 1 function SQL và kết quả trả về là 1.000 bảng ghi và hiển thị ra
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- select * From dbo.inso(100000)
ALTER FUNCTION dbo.inso
(
-- Add the parameters for the function here
@A int
)
RETURNS @temp TABLE
(
STT int
)
AS
BEGIN
DECLARE @cnt int
Set @cnt=1
WHILE @cnt <= @A
BEGIN
Insert @temp values
(
@cnt
)
SET @cnt = @cnt + 1;
END;
Return;
END
GO
Sau khi thực thi hàm SQL Server xong.
Gọi câu SQL: select * From dbo.inso(1000)
Lập trình vòng lặp For trong SQL Server, vòng lặp SQL cũng giống như các ngôn ngữ khác