gpt4 book ai didi

sql - 从数据表到数据库插入多个 Anto Number

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:59 25 4
gpt4 key购买 nike

我有3个数据表要更新数据库

  • Invoice 表,主键为InvoiceNo
  • InvoiceProduct 表,主键为InvoiceProductNo,外键为InvoiceNo
  • InvoiceProductExp 表,主键是InvoiceProductExpNo,外键是InvoiceNoInvoiceProductNo

事实:

  • 一个InvoiceNo有多个InvoiceProductNo
  • 一个InvoiceProductNo有多个InvoiceProductExpNo

3 数据表数据输入例如是

Invoice (InvoiceNo,...)
(0001,...)

InvoiceProduct (InvoiceProductNo, InvoiceNo)
(1,0001,...)
(2,0001,...)

InvoiceProductExp (InvoiceProductExpNo,InvoiceProductNo,InvoiceNo)
(1,1,0001,...)
(2,1,0001,...)
(3,2,0001,...)
(4,2,0001,...)

问题是我喜欢为 3 个表的所有主键使用 SQL Server 生成的 Identity

如何为 insert 语句做准备?

Insert Into InvoiceProductExp values (auto_number, ?, ?)

由于 InvoiceProductNo 是自动编号,我如何才能将 InvoiceProductNo 插入到 InvoiceProductExp 表中?

最佳答案

您正在寻找 SCOPE_IDENTITY()

DECLARE @InvoiceNo INT
DECLARE @InvoiceProductNo INT

INSERT INTO Invoice ([Date])
VALUES (GETDATE())

SELECT @InvoiceNo = SCOPE_IDENTITY()

INSERT INTO InvoiceProduct([InvoiceNo])
VALUES (@InvoiceNo)

SELECT @InvoiceProductNo = SCOPE_IDENTITY()

INSERT INTO InvoiceProductExp ([InvoiceProductNo], [InvoiceNo])
VALUES (@InvoiceProductNo, @InvoiceNo)

这是 SQLFiddle 演示

关于sql - 从数据表到数据库插入多个 Anto Number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com