Как использовать все строки из внешней таблицы в качестве параметра для хранимой процедуры?

#sql #sql-server #stored-procedures #parameters #parameter-passing

#sql #sql-сервер #хранимые процедуры #параметры #передача параметров

Вопрос:

Я хочу использовать все строки из таблицы в хранимой процедуре. Давайте назовем эту таблицу 2 или псевдонимом b.

Процедура, которую я выполняю в настоящее время, в основном устанавливает значения в зависимости от условия where поля.

 UPDATE table1 SET a.Name = "VALID"  FROM table1 a WHERE a.Quality = 0  

Я хочу WHERE a.Quality = 0 , чтобы в предложении в основном говорилось: «где a.Качество соответствует любому числу из таблицы 2 b».

Как мне это сделать? Будет ли речь идти о передаче строк из таблицы2 в качестве параметра? Или я могу использовать только пункт «где»?

Спасибо!

Ответ №1:

Как насчет использования простого INNER JOIN ?

Подобный этому:

 UPDATE table1 SET a.Name = "VALID"  FROM table1 a INNER JOIN table2 b ON a.Quality = b.SomeColumnNameHere  

Если вы настаиваете на использовании предложения «только» WHERE , вы можете попробовать что-то вроде этого:

 UPDATE table1 SET a.Name = "VALID"  FROM table1 a WHERE a.Quality IN (SELECT SomeColumnNameHere  FROM table2)