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

نکات برنامه نویسی ، معرفی نرم افزار و علایق شخصی

حلقه در SQL server

ممکن است در 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 باشد. با تشکر وسپاس.
نازی
خیلی کاربردیه، لایک . ممنون از مطالب عالی