当前位置: 首页 > 面试题库 >

将标识列值从另一个表插入表?

夏侯彬郁
2023-03-14
问题内容
create table #test (a int identity(1,1), b varchar(20), c varchar(20))

insert into #test (b,c) values ('bvju','hjab')
insert into #test (b,c) values ('bst','sdfkg')
......
insert into #test (b,c) values ('hdsj','kfsd')

如何将#test.a上面插入语句中填充的标识值()插入#sample表(另一个表)中

create table #sample (d int identity(1,1), e int, f varchar(20))

insert into #sample(e,f) values (identity value from #test table, 'jkhjk')
insert into #sample(e,f) values (identity value from #test table, 'hfhfd')
......
insert into #sample(e,f) values (identity value from #test table, 'khyy')

任何人都可以解释一下如何对更大的记录集(成千上万条记录)实施此操作吗?

我们可以使用whileloop和scope_identity吗?如果是这样,请说明我们该怎么做?

如果我从选择查询中插入#test,会发生什么情况?

插入#test(b,c)中,从…中选择…(成千上万条记录)

我将如何捕获身份值并将该值用于另一个(#sample)插入#sample(e,f)插入select(来自#test的身份值),…来自....(成千上万条记录)’。


问题答案:

您可以使用该output子句。从文档(重点是我的):

OUTPUT子句从受INSERT,UPDATE,DELETE或MERGE语句影响的每一行返回信息或基于表达式的信息。这些结果可以返回给处理应用程序,以用于诸如确认消息,归档和其他此类应用程序需求之类的事情。
结果也可以插入到表或表变量中。
此外,您可以在嵌套的INSERT,UPDATE,DELETE或MERGE语句中捕获OUTPUT子句的结果,然后将这些结果插入目标表或视图中。

像这样:

create table #tempids (a int) -- a temp table for holding our identity values

insert into #test 
(b,c) 
**output inserted.a into #tempids** -- put the inserted identity value into #tempids
values 
('bvju','hjab')

然后你问…

如果插入内容来自选择内容,该怎么办?

它的工作方式相同…

insert into #test 
(b,c) 
output inserted.a into #tempids -- put the inserted identity value into #tempids
**select** -- except you use a select here
**Column1
,Column2
from SomeSource**

无论是从值插入,派生表,execute语句,dml表源还是默认值,其工作方式都相同。
如果您插入1000条记录,则会在中获得1000个ID#tempids



 类似资料:
  • 如何将从上述插入语句填充的标识值()插入到表(另一个表)中 任何人都可以解释一下我如何为更大的记录集(数千条记录)实现它? 我们可以使用循环和?如果是,请解释我们如何做到这一点? 如果我从选择查询插入到#test中,会是什么情况? 插入到#test(b,c)中从…(数千条记录)中选择 我如何捕获标识值并将该值用于另一个(#sample) insert into #sample(e,f) selec

  • 问题内容: 我有这段代码可以从“ jobseeker”表中选择所有字段,并可以通过将userType设置为“ admin”来更新“ user”表,其中userID =$ userID(此userID是我用户中的一个用户数据库)。然后,该语句应将这些值从“ jobseeker”表插入到“ admin”表中,然后从“ jobseeker表”中删除该用户。sql表很好,我的语句正在将userType更改

  • 我试图在从一个表创建一个值后将其插入另一个表我有两个数据库“mem”和“location” 我想从mem表中添加主键id,并将其插入到位置表中的user_id列中。 我有一个sql查询在我的注册表单页面,自动递增'id'在mem表中,但似乎没有添加相同的值到位置表中的user_id, 有人能帮忙吗!

  • 如何在同一表中从一列插入值到另一列? 说我有: 我要求: 换句话说,我想复制'Suburb2'和'Date',并将它们分别作为新行插入'Date'和'suburban'。 我知道我可以通过首先复制到临时列/s并稍后清理来实现这一点,但我想知道是否有一种方法可以在一个查询中实现这一点? 我试过了 但得到的列“日期”不存在错误。

  • 问题内容: 这是否可能在另一个数据结构中包含一个数据结构?到目前为止,我只能在列表中插入字符串或数字。 所需的数据结构将是具有一个列表,其中每个组件也是一个列表。 问题答案: 简单答案:不,Redis列表成员只能是字符串。 复杂的答案:字符串可以做很多事情。您可以使用多种不同的格式(JSON,XML,CSV,特定于语言的序列化等)将列表序列化为字符串。Redis可以容纳很大的字符串值,因此您可以只

  • 我想移动项目从一个表到另一个使用MySQL。 这是我目前使用的: 这是可行的,但是我想在一列中插入多个值,而不是在不同的列中插入每个值。 例如: 在表items_rooms中,我希望将items_phoenix中的值x和y放在items_rooms中的一列中。 如果x=5,y=2,我可以像这样将其保存到items\u房间中:一列:5.2,而不是每个值的不同列吗? 抱歉,如果这是混淆!