当 IDENTITY_INSERT 设置为 OFF 时,无法在表“tbl Fingerprint”中插入标识列的显式值 [重复]

Posted

技术标签:

【中文标题】当 IDENTITY_INSERT 设置为 OFF 时,无法在表“tbl Fingerprint”中插入标识列的显式值 [重复]【英文标题】:Cannot insert explicit value for identity column in table 'tbl Fingerprint' when IDENTITY_INSERT is set to OFF [duplicate] 【发布时间】:2014-02-24 05:41:36 【问题描述】:

我正在尝试将数据插入到有四列的指纹表中 - ID(主键) - StudentID(外键)链接到学生表 - 描述 - 模板

但以下错误不断出现。我无法关闭 ID 的 IDENTITY,因为我希望它自动递增。我还有一个学生表来存储信息。我想要实现的是在输入学生详细信息后,我想将之前生成的学生ID复制到指纹表 - StudentID 列。我为此提供的代码如下所示。

private void btnSave_Click(object sender, EventArgs e)
        
            fgrTemplate template = new fgrTemplate();
            template.StudentID = std.StudentID;
            template.Description = fngDes.Text;
            template.Template = m_StoredTemplate;
            if (upload.InsertTemplate(template))
            
                MessageBox.Show("Student Successfully Added!");
            
            else
            
                MessageBox.Show("Student Not Successfully Added!");
            

using (SqlCommand com = new SqlCommand("INSERT INTO tblFingerprint (StudentID, Description, Template) values ('" + template.StudentID + "' ,'" + template.Description + "' ,@Template)", cn))

这就是我的网络服务中的内容。但是它给了我错误

【问题讨论】:

不要将 ID 列添加为插入的一部分。 Insert Table (strcolumn1, strcolumn2) values (1,2) Table(id int, strcolumn1 varchar(1), strcolumn2 varchar(2)) 您在 INSERT 语句中传递了 ID 值,ID 作为身份类型应该获得一个自动递增编号。请参阅linked question 并在问题中发布您的相关代码。 【参考方案1】:

在为具有IDENTITY 列的表发出INSERT 语句时,不要在字段和值列表中包含标识列。例如,以下语句将失败:

INSERT INTO tbl (ID, StudentID) VALUES (1, 1)

但是这个语句会成功:

INSERT INTO tbl (StudentID) VALUES (1)

并将下一个可用的标识值插入ID 列。

现在,如果您确实想要插入实际身份,请执行以下操作:

SET IDENTITY_INSERT tbl ON
INSERT INTO tbl (ID, StudentID) VALUES (1, 1)
SET IDENTITY_INSERT tbl OFF

【讨论】:

@user3144368,请使用代码编辑您的问题并删除此评论。

以上是关于当 IDENTITY_INSERT 设置为 OFF 时,无法在表“tbl Fingerprint”中插入标识列的显式值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

无法添加表行,因为“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'Users' 中插入标识列的显式值”错误

IDENTITY_INSERT 设置为 OFF 的问题? :-/

当 IDENTITY_INSERT 设置为 OFF 时,无法在表“企业”中插入标识列的显式值

SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“任务”中插入标识列的显式值

当 IDENTITY_INSERT 设置为 OFF 时,无法在表中插入标识列的显式值