我想通过只有一个sql查询将父表中的数据插入到子表中。
我有两个表,即users表和userInfo表
用户表 - 父表
UserInfo表 - 子表
我之前使用两个INSERT来拥有相同的user_id。有没有办法在单个查询中执行此操作?
答案 0 :(得分:0)
您可以使用带有而不是插入触发器的视图来执行此操作。我不是说这是最好的主意,但你可以。此外,您可以将它包装在您传递用户名,密码,名字,姓氏等的存储过程中,proc将为您处理两个(或更多)插入。
答案 1 :(得分:0)
创建一个接收所需参数的存储过程是合适的,您可以尝试:
CREATE PROCEDURE sp_insertAll @parameter1 parameterType, @parameter2 parameterType, @etc parameterType
AS
/*DO YOUR INSERTS HERE*/
GO
然后,执行它:
EXEC sp_insertAll @parameter1 = value, @parameter2 = value, @etc = value
答案 2 :(得分:0)
您可以创建SP并传递所有参数。
如,
CREATE PROCEDURE SP_InsertMasterDetail
@param1 <datatype>
@param2 <datatype>
..................
@param1 <datatype>
AS
DECLARE @p_id int
--SETP 1 -- INSERT TO MASTER_TABLE
INSERT INTO MASTER_TABLE()
VALUES (..........)
SELECT @p_id= SCOPE_IDENTITY()
--STEP 2 -- INSERT TO DETAILS_TABLE
INSERT INTO DETAILS_TABLE()
VALUES(@p_id,.................)
然后执行它,
EXEC SP_InsertMasterDetail param1,param2,param3,......