2012-10-11 36 views
0

我一直在嘗試從一個臨時表中的一行插入數據到我的數據庫中的一個現有表中,這是我設法做到的,但是我還希望增加主題表中已經存在的ID列。臨時表有兩列,ID和關鍵字,但是我從臨時表獲得的關鍵字總是第一行,所以在臨時表中ID總是1,而我希望ID是主題表加上1.使用從一個表到另一個表的插入語句爲一行分配ID

對不起,如果之前已經問過,我只是不知道要搜索什麼!

這是我到目前爲止,不知道如果我在正確的軌道或不上:

--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 

回答

1

更改COUNT(*)MAX(Topic_ID)但它會更好,如果你已經宣佈Topic_ID作爲標識列讓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 
相關問題