2015-03-10 2 views
0

Я создал процедуру для вставки данных из другой таблицы следующим образом:вставки в с SQL сервером выберите заявление

DROP PROCEDURE IF EXISTS STP_addCompanySection; 
DELIMITER // 
CREATE PROCEDURE STP_addCompanySection() 
BEGIN 

insert into companySection(categoryName,description) 
select categoryName,description from BusinessCat where deleted='0'; 

END \g 
DELIMITER ; 

Могу ли я добавить еще один столбец на вставки, как это:

DROP PROCEDURE IF EXISTS STP_addCompanySection; 


DELIMITER // 
CREATE PROCEDURE STP_addCompanySection (
IN inCompanyId int 
) 
BEGIN 

insert into companySection(categoryName,description,comId) 
(select categoryName,description from BusinessCat where deleted='0' ,inCompanyId); 
select LAST_INSERT_ID() id; 

END \g 
DELIMITER ; 

благодаря

ответ

1

Попробуйте что-нибудь наподобие:

insert into companySection(categoryName,description,comId) 
(select categoryName,description, inCompanyId 
from BusinessCat 
where deleted='0'); 
0

Вы можете сделать это следующим образом:

insert into companySection(categoryName,description,comId) 
select categoryName,description,inCompanyId from BusinessCat where deleted='0'; 
select LAST_INSERT_ID() id; 
-1

Sure, добавьте его в список выбора:

insert into companySection(categoryName,description,comId) 
(select categoryName,description, inCompanyID from BusinessCat where deleted='0'); 
+0

Бит бит, скопированный из ответа SMA. Плохой парень. – DeDee

+0

Нет, мы оба одновременно отвечали одновременно. –

0

Другие пользователи упускают вопрос. Динамический SQL, вероятно, будет вашим решением. Ваше значение входного параметра будет строкой любого столбца, который вы хотите ввести. Ваша хранимая процедура будет содержать:

DECLARE @MySQL VARCHAR(MAX); 

@MySQL = 'insert into companySection(categoryName,description,comId) 
(select categoryName,description ' + ,inCompanyId + ' from BusinessCat where  deleted='0');' 

EXEC (@MySQL); 

Обратите внимание, что это очень уязвимо для SQL инъекций и читать на эту тему, если вы не знаете об этом.

Смежные вопросы