INSERT INTO没有列名,输出插入
本文关键字:输出 插入 INTO INSERT | 更新日期: 2023-09-27 18:06:34
我想创建一个SQL语句,它将复制给定的记录并返回插入的ID,例如:
INSERT INTO DF_FILES
OUTPUT INSERTED.TableID
SELECT *
FROM DF_FILES
WHERE DOC = "myFile.txt"
然后我尝试使用以下命令捕获ID:
Int32 t_ID = (Int32)command.ExecuteScalar();
当我通过c# SqlCommand
运行语句时,我得到以下错误消息:
表'DF_FILES'中标识列的显式值只能在使用列列表且IDENTITY_INSERT为ON时指定。
是否有获得新创建记录的ID的解决方案?
谢谢,达林
"INSERT INTO without column names"仅在以完全相同的顺序为表中的所有列插入值时有效。
在这种情况下,因为TableID似乎有IDENTITY_INSERT打开了,这意味着列的值在计算每一行基于身份的状态,因此你不能只是插入一个新的值到它。如果你列出DF_FILES表中没有TableID的所有列,并尝试插入,你可能能够解决这个问题。
INSERT INTO DF_FILES (col1, col2 , col3 ...)
OUTPUT INSERTED.TableID
SELECT col1, col2 , col3 ...
FROM DF_FILES
WHERE DOC = "myFile.txt"