1
DECLARE @Versions table (id int);
INSERT INTO @Versions
SELECT DISTINCT Version_Id
FROM dbo.values
WHERE CatId = (SELECT id FROM dbo.Category WHERE Name = 'Locations')
SELECT * FROM @Versions --- returns 1,2
到此爲止,我能夠獲取版本的數據並將其存儲在表值參數版本中。但現在我需要遍歷它來執行像如何在SQL Server中存儲數組值並對其進行迭代
WHILE(till @Versions has value) -- Iterate till @Versions exhausts its value ,which will be ideally 1,2 then stop iteration
BEGIN
-- Update Statements for each version
END
一些操作如何指定將只運行至@Versions
病情值(增量 - 對於版本1執行一些更新,然後做同樣爲V2,然後退出)
也請建議是否有更好的方法來做到這一點!
你已經採取了看看在SQL服務器遊標?它們是在一個集合上聲明的,並可用於將值提取到一個或多個變量中。只要光標集中有記錄,您就可以設置一個while循環。如果你想解決沒有遊標的可能的解決方案取決於你想要做什麼。除非您的遊標用於定義要執行的動態sql,否則通常是可能的。 –