2015-11-09 120 views
1

Foreign Key列將在下列情況下填充。如何在外鍵列中插入值?

它正在返回NULLtblCustomer的列OrderId列,而它被設置爲外部約束。

create table tblOrder 
(
OrderId int primary key identity(1,1), 
OrderName varchar(20) not null 
) 
create table tblCustomer 
(
CustomerId int primary key identity(1,1), 
CustomerName varchar(20) not null, 
OrderId int FOREIGN KEY REFERENCES tblOrder(OrderId) 
) 

insert into tblOrder(OrderName) Values ('OrderOne') 
insert into tblCustomer(CustomerName) values ('CustomerOne') 

它將如何獲得存儲在列中的外鍵結果。

+0

答案中的任何一個都可以幫助你? –

回答

1
insert into tblCustomer(CustomerName, OrderId) 
values ('CustomerOne',(select OrderId from tblOrder where OrderName = 'OrderOne') 
1

SCOPE_IDENTITY()是你想要的。

DECLARE @OrderId int; 
insert into tblOrder(OrderName) Values ('OrderOne'); 

SET @OrderId = SCOPE_IDENTITY(); 
insert into tblCustomer(OrderId, CustomerName) values (@OrderId ,'CustomerOne'); 

但我想你的主/外鍵關係錯了。通常情況下,外鍵在TblOrder中更有意義。您目前的方式是,訂單可以屬於許多客戶,但客戶只能訂購一個訂單。