1

我在 SQL Server 中有两个表,Appointment并且AppointmentDetails.

Appointment表有两列AppIdCusId

AppointmentDetail表有AppId, ApDay, Intime, OutTime, EmpId.

AppointmentAppId作为它的主键,它被设置为自动递增。 AppointmentDetails表有主键(AppId, ApDay)

当我将数据插入表时,我的问题是如何获取Appointment表的主键并将其插入到表中???AppointmentDetailsAppointment

4

2 回答 2

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

或者,您可以使用触发器,但它们只是邪恶的!

于 2013-11-07T14:42:44.480 回答
0

我认为他们问他们如何返回生成的新密钥,然后将其插入到详细信息表中。

如果使用 JDBC,请查看这篇文章,但所有语言的想法都是相同的:如何在 JDBC 中获取插入 ID?

于 2013-11-07T14:43:24.257 回答