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