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

حلقه در SQL server


پرسش امنیتی

مقدار 18 به علاوه 9 چقدر میشود؟

دیدگاه شما پس از تایید نمایش داده خواهد شد.

ممکن است در 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