我有一个主存储过程,插入3个varchar字段,名称,地址和电话号码以及其他3个字段,这些字段在表中插入外键的ID,这2个外键字段也使用插入存储过程来插入它们自己的数据。如何从主SP调用这些存储过程来插入varchar字段和执行时生成的外键字段?
Table 1 Table 2 Table 3
id, id2, id3,
name1, name2, name3,
address1, address2, address3,
phoneNumber1, phoneNumber2, phoneNumber3
id2,
id3,
create procedure table1
@id int,
@name1 varchar(30),
@address1 varchar(100),
@phoneNumber1 varchar(30)
as
BEGIN
set nocount on;
Insert into table1
(id,
name,
address,
phoneNumber)
values(
@id,
@name,
@address,
@phoneNumber)
END
------After inserting the data into table 1, I want to call the SP of table 2 and 3---
EXEC SPTable2
答案 0 :(得分:2)
从主程序:
Insert into table1 (...)
exec yourProcName @param='foo'
你应该让每个proc返回你需要的数据集,主proc调用它们中的每一个,并按照我上面的说明进行INSERT INTO
。
table1
的表定义必须与完全匹配其他过程返回的结果集的列数和数据类型。
如果你不能保证这个条件,你可能最好写一个返回一个表的函数,这样你就可以insert into table1 (....) select col1, col2, etc from fnFoo(@param)