![](/img/trans.png)
[英]Assigning the value of a table row ID with another ID using an SQL statement
[英]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.