插入一个表,将ID插入第二个表

use*_*054 0 sql sql-server

插入第一个表时是否可以填充第二个表?

将帖子插入table1 - > table 2列接收table1 post的唯一ID.

到目前为止我得到了什么,我是在正确的轨道上吗?

    CONSTRAINT [FK_dbo.Statistics_dbo.News_News_NewsID] FOREIGN KEY ([News_NewsID]) REFERENCES [dbo].[News] ([NewsID])
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 6

很多方法:

  1. 一个insert触发器
  2. SCOPE_IDENTITY()在第一个之后阅读insert,并用它做一秒钟
  3. 使用该output子句进行插入

例子:

1:

create trigger Foo_Insert on Foo after insert
as
begin
    set nocount on
    insert Bar(fooid)
    select id from inserted
end
go
insert Foo (Name)
values ('abc');
Run Code Online (Sandbox Code Playgroud)

2:

insert Foo (Name)
values ('abc');
declare @id int = SCOPE_IDENTITY();

insert Bar(fooid)
select @id
Run Code Online (Sandbox Code Playgroud)

3:

insert Bar(fooid)
select id from (
    insert Foo (Name)
    output inserted.id
    values ('abc')) x
Run Code Online (Sandbox Code Playgroud)