Bir şekilde bir imleç kullanmadan bir masa döngü TSQL değişken var mı?
Hadi aşağıdaki basit tablo değişkeni var ki:
declare @databases table
(
DatabaseID int,
Name varchar(15),
Server varchar(15)
)
-- insert a bunch rows into @databases
Eğer satırlar arasında dolaşmak istesem ve bir imleç bildirmek kullanarak tek seçeneğim? Başka bir yolu var mı?
CEVAP
Kesinlikle her satır boyunca yineleme tabanlı işlemler ayarlamanız gerekir emin olmalısınız öncelikle daha hızlı aklıma gelen her durumda gerçekleştirecek ve normalde basit bir kod kullanacağız.
Verilerinizi sadece aşağıda gösterildiği gibi seçin deyimleri döngü mümkün olabilir bağlı
Declare @Id int
While (Select Count(*) From ATable Where Processed = 0) > 0
Begin
Select Top 1 @Id = Id From ATable Where Processed = 0
--Do some processing here
Update ATable Set Processed = 1 Where Id = @Id
End
Başka bir alternatif geçici bir tablo kullanın
Select *
Into #Temp
From ATable
Declare @Id int
While (Select Count(*) From #Temp) > 0
Begin
Select Top 1 @Id = Id From #Temp
--Do some processing here
Delete #Temp Where Id = @Id
End
Seçmeniz gereken seçenek çok veri yapısı ve hacmine bağlıdır.
Not:Eğer SQL Server kullanıyorsanız kullanarak daha iyi hizmet verilebilir:
WHILE EXISTS(SELECT * FROM #Temp)
COUNT
kullanarak tablodaki her bir satır dokunmak zorunda olacak, EXISTS
yalnızca birinci (Josef's answer aşağıya bakınız) dokunmasına gerek yok.
Vurgulamak sen imleç altında Vim gibi ...
Bir Dizi çoğaltmak için Javascript en ...
Bir şekilde Git submodule olarak Değiş...
64-bit ile 32-bit döngü sayısı bir değ...
3. değişken kullanmadan iki değişkenin...