2015-10-15 74 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