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,否则通常是可能的。 –