繁体   English   中英

使用插入语句从一个表到另一个表为行分配ID

[英]Assigning ID to a row using an insert statement from one table into another

我一直在尝试将临时表中的一行数据插入数据库中的现有表中,这已经设法做到了,但是我也想增加Topic表中已经存在的ID列。 临时表有两列,ID和关键字,但是我从临时表中获取的关键字始终是第一行,因此在临时表中ID始终为1,而我希望ID为主题表加1。

对不起,如果以前已经问过这个问题,我只是不知道要搜索什么!

到目前为止,这是我所掌握的,不确定我是否在正确的轨道上:

 --declare topic id and set it as one more than the current number of rows
 DECLARE @T_ID int
 SET @T_ID = (SELECT COUNT(*) FROM Topic)+1

 --insert keyword into Topic table
 INSERT INTO Topic(Topic_ID, Topic_Name)
 SELECT keyword FROM #tempKeywords 
 WHERE ID = 1

COUNT(*)更改为MAX(Topic_ID)但是最好将Topic_ID声明为Identity列,让SQLServer处理增量,这样会更好

SET @T_ID = (SELECT ISNULL(MAX(Topic_ID),0)+1 FROM Topic)

 --insert keyword into Topic table
 INSERT INTO Topic(Topic_ID, Topic_Name)
 SELECT @T_ID, keyword FROM #tempKeywords 
 WHERE ID = 1

如果您将Topic_ID列更改为身份,那么您将拥有

 --insert keyword into Topic table
 INSERT INTO Topic(Topic_Name)
 SELECT keyword FROM #tempKeywords 
 WHERE ID = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM