我一直在尝试将数据从临时表中的一行插入到我的数据库中的现有表中,我已经设法做了,但我还想增加已经存在的ID列在主题表中。临时表有两列,ID和关键字,但从临时表中获取的关键字I始终是第一行,因此临时表中的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
答案 0 :(得分: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