Sql 是否可以从1个控制器向2个表插入数据?

Sql 是否可以从1个控制器向2个表插入数据?,sql,sql-server,Sql,Sql Server,这是我的数据库。我想创建一个存储过程,将数据插入到预订表中。我想插入room_id、data check-in和其他字段,但不是guest_id,我想从guest表中输入名字、姓氏、电话和其他字段。这可能吗 无论发布什么数据,您都可以插入任意数量的表。控制器与表无关,因此没有限制 我建议试着写一些东西,如果你能让它工作,在这里发布你的尝试(堆栈溢出…不是这个特殊的帖子),描述什么不工作。这更符合SO格式,而不是一个模糊的非代码问题。无论发布什么数据,您都可以插入任意数量的表。控制器与表无关,因此

这是我的数据库。我想创建一个存储过程,将数据插入到预订表中。我想插入room_id、data check-in和其他字段,但不是guest_id,我想从guest表中输入名字、姓氏、电话和其他字段。这可能吗


无论发布什么数据,您都可以插入任意数量的表。控制器与表无关,因此没有限制


我建议试着写一些东西,如果你能让它工作,在这里发布你的尝试(堆栈溢出…不是这个特殊的帖子),描述什么不工作。这更符合SO格式,而不是一个模糊的非代码问题。

无论发布什么数据,您都可以插入任意数量的表。控制器与表无关,因此没有限制


我建议试着写一些东西,如果你能让它工作,在这里发布你的尝试(堆栈溢出…不是这个特殊的帖子),描述什么不工作。这更符合SO格式,而不是模糊的非代码问题。

我将创建两个存储过程。一个用于保存客人信息,另一个用于保存预订信息

CREATE PROCEDURE SaveGuest(@firstName varcahr(50),@lastName varchar(50),@phone varchar(15))
AS
 BEGIN

    INSERT INTO Guest(FirstName,LastName,Phone) VALUES (@firstName,@lastName,@phone);
    RETURN SCOPE_IDENTITY()

 END
调用第二个进程的过程

CREATE PROCEDUE SaveReservation(@roomId int,@guestId int,@price decimal)
AS
 BEGIN
   INSERT INTO Reservation(Room_ID,Guest_ID,Price) VALUES (@roomID,@guestId,@price)
   RETURN SCOPE_IDENTITY()
 END
这是一个样本。您需要为所有不为null的db列添加字段

现在创建两个方法来保存这些数据
SaveGuest
SaveReservation
。从SaveGuest方法返回新保存的来宾ID。现在,在动作方法调用中,首先是SaveGuest方法。检查方法的返回值。如果它是一个有效的数字,这意味着客人信息被保存。在保存第二部分(预订)时使用该客人ID;像这样的

public ActionResult SAve(YourViewMolde model)
{
int guestId=  SaveGuest("john","alex",....);
if(guestID>0)
 {
   SaveReservation(guestId,34,...);
 }
 else
 {
   model.AddModelError("","Error in saving Guest info!");
 }
}

我将创建2个存储过程。一个用于保存客人信息,另一个用于保存预订信息

CREATE PROCEDURE SaveGuest(@firstName varcahr(50),@lastName varchar(50),@phone varchar(15))
AS
 BEGIN

    INSERT INTO Guest(FirstName,LastName,Phone) VALUES (@firstName,@lastName,@phone);
    RETURN SCOPE_IDENTITY()

 END
调用第二个进程的过程

CREATE PROCEDUE SaveReservation(@roomId int,@guestId int,@price decimal)
AS
 BEGIN
   INSERT INTO Reservation(Room_ID,Guest_ID,Price) VALUES (@roomID,@guestId,@price)
   RETURN SCOPE_IDENTITY()
 END
这是一个样本。您需要为所有不为null的db列添加字段

现在创建两个方法来保存这些数据
SaveGuest
SaveReservation
。从SaveGuest方法返回新保存的来宾ID。现在,在动作方法调用中,首先是SaveGuest方法。检查方法的返回值。如果它是一个有效的数字,这意味着客人信息被保存。在保存第二部分(预订)时使用该客人ID;像这样的

public ActionResult SAve(YourViewMolde model)
{
int guestId=  SaveGuest("john","alex",....);
if(guestID>0)
 {
   SaveReservation(guestId,34,...);
 }
 else
 {
   model.AddModelError("","Error in saving Guest info!");
 }
}