我在SQL Server中有两个表,Appointment
和AppointmentDetails
。
Appointment
表格有两列AppId
和CusId
。
AppointmentDetail
表格包含AppId
,ApDay
,Intime
,OutTime
,EmpId
。
Appointment
表以AppId
为主键,并设置为自动递增。
AppointmentDetails
表在(AppId, ApDay)
上有主键。
我的问题是当我将数据插入Appointment
表时,如何获取AppointmentDetails
表的主键并将其插入Appointment
表
答案 0 :(得分:0)
以下是一种方法(虽然我接受这些表格的更正拼写有时超出了你的控制范围):
DECLARE @insertedId INT;
BEGIN TRANSACTION
INSERT INTO Appointment(CusId) VALUES(@cusId);
SET @insertedId = SCOPE_IDENTITY();
COMMIT
BEGIN TRANSACTION
INSERT INTO
AppointmentDetails
SELECT
AppId = @insertedId
,ApDay = @apDay
,Intime = @inTime
,OutTime = @outTime
,EmpId = @empId
FROM
Appointment
COMMIT
或者你可以使用trigger,但他们只是邪恶的!
答案 1 :(得分:0)
我认为他们询问如何返回生成的新密钥,然后将其插入到详细信息表中。
如果使用JDBC,请查看此帖子,但所有语言的想法都相同:How to get the insert ID in JDBC?