一尘不染

如何根据以前的插入内容插入记录?

sql

这是我的程序:

PROCEDURE add_values
AS
BEGIN

   INSERT INTO TABLE_A ...
   SELECT t.id, t.name FROM TABLE_C ("This selection will return multiple records")

END

当它插入到TableA中时,我想为插入到tableA中的特定记录插入到另一个表(TableB)中。

TableA和TableB中的列是不同的。在插入TableB之前调用一个函数是否明智-我想根据插入在tableA中的ID进行某些获取和设置?


阅读 162

收藏
2021-05-16

共1个答案

一尘不染

试试这个

输入项

declare @tblA table (id int,name varchar(20))
declare @tblB table (id int,name varchar(20))
declare @tblC table (id int identity,name varchar(20))
insert into @tblC 
    select 'name1' union all select 'name2' union all
    select 'name3' union all select 'name4' union all
    select 'name5' union all select 'name6' union all
    select 'name7' union all select 'name8' union all
    select 'name9' union all select 'name10' union all
    select 'name11' union all select 'name12' union all
    select 'name13' union all select 'name14' union all
    select 'name15' union all select 'name16' union all
    select 'name17' union all select 'name18' union all
    select 'name19' union all select 'name20'

询问

insert @tblA 
output INSERTED.id, INSERTED.Name
into @tblB 
select 
    id,name
from @tblC 
where id % 2 = 0

select * from @tblA
select * from @tblB

输出: [对于表A和表B]

身份证名

2   name2
4   name4
6   name6
8   name8
10  name10
12  name12
14  name14
16  name16
18  name18
20  name20

基本上,我将这些记录从ID均为偶数的TableC插入到TableA中。然后通过使用Output子句将值从TableA插入到TableB

有关更多信息,请输入输出子句

希望这有道理

2021-05-16