Как зациклить полученные результаты из табличной переменной
У меня есть это
declare @Identity int set @Identity = 100 declare @table1 as table (Id int) insert into @table1 exec [usp_GetIds] @Identity,2 declare @table2 as table (Id int) insert into @table exec [usp_GetIds] @Identity,1
Теперь я хочу сделать логику, основанную на каждой заполненной записи @таблица2 Итак , мне нужно сделать петлю
Что я уже пробовал:
Поэтому после вставки я хочу сделать следующее
допустим, Таблица 2 извлекла это
Id Name -- ---- 1 name1 2 name2 3 name3
Я хочу прокрутить каждую полученную запись и сделать это
while @table2 is not null -- it seems i can't say while @table2 ( select count(Id)from @table1 where @table1.Id=@table2.Id --it seems i can't say @table1.field exec usp_doSth(@table2.Id) )
CHill60
Не петляй!
SQL устанавливается на основе
Взгляните на мою статью Циклы обработки в SQL Server[^] - в конце он расскажет вам, как делать циклы в SQL Server - остальная часть статьи дает примеры того, почему вам обычно не нужен цикл и как это сделать
Member 14800672
как я могу использовать while с созданной мной табличной переменной?
Jörgen Andersson
Вы не можете, потому что это переменная таблицы.
Это относится к таблице, а не к значению или даже к строке со значениями.
Теперь я предлагаю вам прочитать статью, на которую вы были связаны. Это хорошо