【问题标题】:How to insert value in Foreign Key column?如何在外键列中插入值?
【发布时间】:2015-11-09 09:15:42
【问题描述】:

Foreign Key 列在以下场景中将如何填充。

它在tblCustomerOrderId 列中返回NULL 值,而它被设置为外部约束。

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')

它将如何获取外键结果以存储在列中。

【问题讨论】:

  • 这两个答案对你有帮助吗?

标签: sql sql-server-2008 insert foreign-keys


【解决方案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 中通常更有意义。按照你现在的方式,一个订单可以属于多个客户,但一个客户只能下一个订单。

【讨论】:

    【解决方案2】:
    insert into tblCustomer(CustomerName, OrderId) 
    values ('CustomerOne',(select OrderId from tblOrder where OrderName = 'OrderOne')
    

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 2012-09-17
      相关资源
      最近更新 更多