Вставить в таблицу результаты хранимых процедур плюс переменную - PullRequest
2 голосов
/ 28 февраля 2012

Мне нужно вставить в таблицу результаты хранимой процедуры (SP) плюс пару других переменных. Я знаю, как вставить результаты SP, но не переменные. Есть ли способ, которым я могу сделать это без необходимости писать отдельный запрос на обновление или передавать / возвращать переменную в SP.

* 1003 Т.е. *

INSERT INTO contacttable(name, address, telnum)
EXEC GetContactDetails @ContactId

UPDATE contacttable SET linkId = @LinkId where id = @ContactId

Могу ли я передать переменную @linkId в INSERT в любом случае, вместо того, чтобы выполнять отдельное обновление?

Спасибо.

1 Ответ

4 голосов
/ 28 февраля 2012

Вы не можете сделать это так, как объясняете свой текущий сценарий.

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

Другая возможностьчтобы превратить этот процесс в табличную функцию таким образом, чтобы вы могли специально выбрать нужные столбцы из набора результатов и добавить дополнительный параметр во вставку.Что-то вроде:

INSERT INTO contacttable(name, address, telnum,linkid)
select name, address,telnum,@linkid from fnGetContactDetails(@ContactID)
...