#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)