Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在列中插入重复的ID_Sql_Sql Server - Fatal编程技术网

Sql 在列中插入重复的ID

Sql 在列中插入重复的ID,sql,sql-server,Sql,Sql Server,我有一个注释表,为了测试,它有三个字段 ID(不允许为空且自动递增)int OriginalCommentID(不允许为空)int 注释(不允许为空)nvarchar(50) 就我而言,OriginalCommentID是关于如何编辑注释的事后思考,但正如注释所显示的,实现它可能是一个坏主意,因为它可能会让未来的开发人员或至少是我将来感到困惑 INSERT [Comments] ( OriginalCommentID ,Comment ) OUTPUT INSERT

我有一个注释表,为了测试,它有三个字段

  • ID(不允许为空且自动递增)int
  • OriginalCommentID(不允许为空)int
  • 注释(不允许为空)nvarchar(50)
就我而言,OriginalCommentID是关于如何编辑注释的事后思考,但正如注释所显示的,实现它可能是一个坏主意,因为它可能会让未来的开发人员或至少是我将来感到困惑

INSERT [Comments]
(
    OriginalCommentID
    ,Comment
)
OUTPUT 
    INSERTED.ID
VALUES
(
    INSERTED.ID
    ,@Comment
)
在这个嵌入式Sql上,我不断得到“输出”附近的错误语法”

编辑: 这是我的测试表。同样的错误

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

您缺少SQL的INTO部分。您需要输出到另一个表中。试试这样的

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

你的代码对我来说毫无意义。您是否正在尝试插入一条新评论,该评论是对以前评论的回复?或者您希望在插入后获得
CommentID
。该列是事后考虑的,因为当有人编辑注释时,我希望保留编辑注释历史记录。在本例中,INSERTED.ID不能为null,但它是一个新注释。即使有“澄清”,这也没有任何意义。也许你需要退一步,解释一下你想做什么。您是否正在尝试维护CommentHistory表或类似的内容?
INSERTED.ID
仅在
INSERT
操作完成后可用-您不能首先使用该符号将值插入表中……您尝试插入的表的名称是什么,列是什么名称和数据类型?请参见我的问题编辑。对于这个Q和A,表名是test和test2。