2015-08-17 2 views
2

Я хотел бы запросить список пользователей из одной таблицы:Выполните INSERT в хранимую процедуру после того, как SELECT,

SELECT username FROM Users WHERE birthday = todaysDate 

И использовать возвращаемые результаты для вставки в другую таблицу

INSERT INTO Message (username, message) VALUES (*username from query above*, 'Happy Birthday') 

Я могу запросить результаты и я могу вставлять в таблицы с жестко закодированными значениями, но я не уверен, как подойти к циклическому результату в SQL и выполнить действие, поскольку я только сделал это в VBScript, используя набор записей.

Должен ли я сделать две отдельные хранимые процедуры для этого? Или это хранимая процедура, даже не подходящая для этого?

ответ

5

Вы можете сделать это в одном вызове:

INSERT INTO Message (username, message) 
SELECT username, 'Happy Birthday' 
FROM Users 
WHERE birthday = todaysDate 
+0

Спасибо. Это сработало. У меня нет большого опыта работы с SQL. Не знал, что простой SELECT может включать строковый параметр, который не был частью таблицы назначения. Я думал, что мне придется использовать СУЩЕСТВУЮЩИЕ или что-то еще. Я ценю это. –

1

Просто используйте insert . . . select:

INSERT INTO Message (username, message) 
    SELECT username, 'Happy Birthday' 
    FROM Users 
    WHERE birthday = todaysDate; 
Смежные вопросы