Aracılığıyla paylaş


Kullanma sırasında...SONU veya devam

WHILE deyim bir deyim tekrarlar veya blok ifadeler belirtilen koşulu doğrudur sürece.

İki Transact-SQL ifadeleri WHILE ile yaygın olarak kullanılır: KESME veya devam edin.Döngü ve CONTINUE deyim yeniden BAŞLATILIRKEN bir WHILE döngüsü break deyim tıklatılır çıkar.Örneğin, varsa, işlem için diğer satırları bir program break deyim yürütmek.Örneğin, kod yürütülmesine devam etmesi gerektiğini, CONTINUE deyim yürütülebilir.

Not

deyim, bir deyim koşul için WHILE deyim olarak kullanılırsa, parantez içinde olması gerekir.

Örnekler

A.SIRADA bir imleç kullanma

Aşağıdaki örnek bir WHILE kaç fetches yapılan denetlemek için deyim.

USE AdventureWorks2008R2;
GO
DECLARE abc CURSOR FOR
SELECT * FROM Purchasing.ShipMethod;
OPEN abc;
FETCH NEXT FROM abc
WHILE (@@FETCH_STATUS = 0)
   FETCH NEXT FROM abc;
CLOSE abc;
DEALLOCATE abc;
GO

Diğer geçerli DURUMDAYKEN aşağıdaki koşul sınamaları olabilir:

WHILE (@ACounterVariable < 100)

Or

WHILE EXISTS(SELECT LastName FROM Person.Person WHERE FirstName = N'Anne')

B.break ve CONTINUE IF kullanarak...else ve çalışırken

Aşağıdaki örnekte, ortalama fiyat listesi ürün ise daha az $300, WHILE döngüsü fiyatları iki katına çıkar ve ardından seçer en yüksek fiyat.En yüksek fiyat'den küçük veya eşit olup olmadığını $500, WHILE döngü yeniden başlar ve yeniden fiyatları iki katına çıkar.Fiyatları en yüksek fiyat değerden büyük oluncaya kadar Katlama Bu döngü devam eder $500ve sonra çıkar WHILE döngü ve yazdıran bir ileti.

USE AdventureWorks2008R2;
GO
WHILE (SELECT AVG(ListPrice) FROM Production.Product) < $300
BEGIN
   UPDATE Production.Product
      SET ListPrice = ListPrice * 2
   SELECT MAX(ListPrice) FROM Production.Product
   IF (SELECT MAX(ListPrice) FROM Production.Product) > $500
      BREAK
   ELSE
      CONTINUE
END
PRINT 'Too much for the market to bear';