0

我一直在尝试将临时表中的一行中的数据插入到数据库中的现有表中,我已经设法做到了,但我还想增加主题表中已经存在的 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
4

1 回答 1

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 列更改为 Identity,那么您将拥有

 --insert keyword into Topic table
 INSERT INTO Topic(Topic_Name)
 SELECT keyword FROM #tempKeywords 
 WHERE ID = 1
于 2012-10-11T23:15:16.387 回答