По сути то, что я хочу сделать в псевдокоде:Для каждого запроса типа SQL
FOR EACH pig_id IN (SELECT pig_id FROM farm AS f)
BEGIN
-- Do something funky with the f.pig_id, for example
SELECT bacon, ham, pork, (face + guts + brains + testicles) AS 'sausage'
FROM farm
WHERE pig_id = f.pig_id
END
Реально внутренняя часть цикла является более сложным, но это простое ЗЕЬЕСТ демонстрирует необходимость использования f.pig_id внутри цикла ДЛЯ КАЖДОГО pig_id в ферме ТАБЛИЦА. Я посмотрел на решение CREATE TRIGGER, но я надеялся на что-то более простое. Я знаю, что это неэффективный запрос, но проект требовал простоты и легко читаемых человеком запросов для нетехнических людей.
EDIT: Он используется на небольшом наборе данных, поэтому человеческая читаемость является приоритетом по эффективности.
Вы пытаетесь сделать что-то неэффективное. Возможно, вам повезло вставить строки в временную таблицу, при необходимости обновив их, а затем запросив временную таблицу. –
Это иногда называется «RBAR» Row By Agonizing Row. Это НЕ вы, как вы хотите начать кодирование TSQL. – granadaCoder
Я не совсем уверен, почему JOIN (или JOINS) не хватит - когда вы видите такой код, как правило, это связано с непониманием SQL и множеством! – Jamie