问:将父表中的主键值传递给子表中的外键值,并且父插入和子插入位于单独的存储过程中。
父母是租赁表,孩子是租金表。我在Rent中获得了lease_id的空值。为什么?
父母的存储过程
ALTER过程[dbo]。[SPnew1]
@tenant_id int,
@ F_Name varchar(255),
@ L_Name varchar(255),
@ Phone varchar(255),
@ Email varchar(255),
@ Age int,
@ Gender varchar(255 ),
@initial_date varchar(255),
@ end_date varchar(255),
@ deposit varchar(255)
就像
@ tenant_id = 0
开始
插入dbo.Tenant
(F_Name,L_Name,Phone,Email,Age,Gender)
值(@ F_Name,@ L_Name,@ Phone,@ Email,@ Age,@ Gender)
选择@ tenant_id = SCOPE_IDENTITY ()
将值(@ initial_date,@ end_date,@ deposit,@ tenant_id)插入租赁(initial_date,end_date,deposit,tenant_id)中;
结束
孩子的存储过程
ALTER过程[DBO]。[Rento]
@rent_id INT,
@rent_fee VARCHAR(255),
@late_fee VARCHAR(255),
@due_date VARCHAR(255),
@service_charge VARCHAR(255),
@lease_id INT,
@pay_id INT,
@ pay_date varchar(255),
@ pay_amount varchar(255),
@ receipt_no varchar(255)
如
开始
插入租金(rent_fee,late_fee,due_date,service_charge,lease_id)值(@ rent_fee,@ late_fee,@ due_date,@ service_charge,@@ identity)
选择@ rent_id = SCOPE_IDENTITY();
插入付款(pay_date,pay_amount,receipt_no,rent_id)值(@ pay_date,@ pay_amount,@ receipt_no,@ rent_id)
末尾
答:您的ID列必须是身份。
就像“ ID INT NOT NULL IDENTITY(1,1)”