یادداشت های یک برنامه نویس
دوستدار فرهنگ و هنر کهن ایرانی

ممکن است در Sql نیاز به تکرار یک کد (حلقه) داشته باشید. دو مثال را با هم بررسی میکنیم؛ اولی ایجاد حلقه با استفاده از متغیر و دومی با استفاده از داده های جدول دیگر 

برای مثال اول از یک تا ده را در یک فیلد یک جدول insert میکنیم:

DECLARE @No int
SET @No = 1

WHILE @No<= 10
BEGIN 
    --------------
    INSERT INTO Test  (No, Name)
	           VALUES  (@No,'MyName')
    --------------
    set @No= @No+1
END

و برای مثال دوم به ازای هر فیلد ID در جدول Test در جدول Test2 فیلد TestID را insert می کنیم

DECLARE @max int
DECLARE @min int

SET @min = (SELECT min(ID) FROM dbo.Test)
SET @max = (SELECT max(ID) FROM dbo.Test)

WHILE @min <= @max
BEGIN 
    DECLARE @currnetID int
    SET @currnetID =  (SELECT ID FROM dbo.Test where id=@min)
    if @currnetID>0
    BEGIN
       --------------
       INSERT INTO Test2  (TestID, Name)
                  VALUES  (@currnetID,'MyName')
       --------------
    END
    set @min = @min+1
END

 

دیدگاه ها: ارسال دیدگاه
ناصر
سلام مثال کاربردی بود از حلقه اگر امکان داره یک مثال دیگه از حلقه بدید که داده ها از جدول باشد و متغییر علاوه بر int دارای متغییر از نوع nvarchar باشد. با تشکر وسپاس.
نازی
خیلی کاربردیه، لایک . ممنون از مطالب عالی