2015-10-15 131 views
0

我有一個評論表,並且要測試出來,它有三個字段。將重複ID插入列

  • ID(空不允許的,自動增量)詮釋
  • OriginalCommentID(空不允許)詮釋
  • 評論(空不允許)爲nvarchar(50)

對於我的目的,OriginalCommentID對於如何編輯評論來說是一個事後的想法,但正如評論似乎表明的那樣,實施它可能是一個糟糕的主意,因爲它可能會混淆未來的開發者或至少是我未來的開發者。

INSERT [Comments] 
(
    OriginalCommentID 
    ,Comment 
) 
OUTPUT 
    INSERTED.ID 
VALUES 
(
    INSERTED.ID 
    ,@Comment 
) 

在此嵌入式SQL,我不斷收到

EDIT 「近 '輸出' 語法錯誤」: 這是我的測試表。同樣的錯誤。

INSERT [test] 
    OUTPUT INSERTED.OriginalCommentID, INSERTED.Comment 
     INTO test2 
VALUES (OriginalCommentID, Comment); 
+3

你的代碼對我沒有任何意義。您是否嘗試插入一條新評論,這是對之前評論的回覆?或者你想在插入後得到'CommentID'。 –

+0

該列是事後編輯,因爲有人編輯評論時,但我想保留編輯評論歷史記錄。在這種情況下,INSERTED.ID不能爲null,但它是一個新的註釋。 – Emwat

+0

即使「澄清」,這也沒有任何意義。也許你需要退後一步並解釋你正在嘗試做什麼。你想維護一個CommentHistory表或類似的東西嗎? –

回答

0

您缺少SQL的INTO部分。你需要輸出到另一個表中。嘗試這樣的事情。

INSERT [Comments] 
    OUTPUT INSERTED.OriginalCommentID, INSERTED.Comment 
     INTO MyTable 
VALUES (OriginalCommentID, Comment); 
+0

同樣的錯誤。 「OUTPUT附近的語法不正確」 – Emwat

+0

您嘗試插入的表的名稱以及列名和數據類型是什麼? – Tarzan

+0

看我的編輯我的問題。對於這個Q和A,表名是test和test2。 – Emwat