当前位置: 首页 > 面试题库 >

仅当使用列列表且IDENTITY_INSERT为ON时,才能为表“表”中的标识列指定一个显式值。

乌甫
2023-03-14
问题内容

是否有人知道这个错误(仅当使用列列表且IDENTITY_INSERT为ON时,才能指定表“ HD_AANVRAAG_FASE”中的身份列的显式值)。

说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:仅在使用列列表且IDENTITY_INSERT为ON时,才能指定表’HD_AANVRAAG_FASE’中的Identity列的显式值。任何帮助表示赞赏。

private void Insert2()
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["HELPDESK_OUTLOOKConnectionString3"].ToString());

        conn.Open();
        SqlCommand dCmd2 = new SqlCommand(
            "INSERT INTO HD_AANVRAAG_FASE VALUES (@fase_id, @aanvraag_id, @status_id, "
                + "@werknemer_id, @fase_datum) SET IDENTITY_INSERT HD_AANVRAAG_FASE OFF ",
            conn);



        dCmd2.Parameters.AddWithValue("@fase_id", 1);
        dCmd2.Parameters.AddWithValue("@aanvraag_id", 2622);
        dCmd2.Parameters.AddWithValue("@status_id", 15);
        dCmd2.Parameters.AddWithValue("@werknemer_id", 165);
        dCmd2.Parameters.AddWithValue("@fase_datum", "12-12-2001");
        dCmd2.ExecuteNonQuery();
        conn.Close();
    }

问题答案:

由于您未明确指定列,因此我假设该列@fase_id将传递到IDENTITY列中, 因为该错误表明
您无法执行操作,除非通过强制它IDENTITY_INSERT

通常,您让数据库生成此代码。在中指定列,INSERT 省略
标识列(并且不要尝试分配值)。INSERT新ID后的直线可作为SCOPE_IDENTITY()



 类似资料:
  • 问题内容: 每当我尝试通过表单将数据提交到此数据库时,都会引发此异常:- 例外 当IDENTITY_INSERT设置为OFF时,无法在表’ClientDetails’中为标识列插入显式值。 但是,该表单没有字段,因此数据可以输入身份列(PK),所以我不知道为什么会这样。 目前,我正在使用标准的asp.net mvc提交按钮,但最终将其链接到jquery对话框按钮 ClientNo列(异常所指的所述

  • 问题内容: 这个问题已经在这里有了答案 : 当IDENTITY_INSERT设置为OFF时,无法在表’table’中为身份列插入显式值 (22个答案) 7年前关闭。 sqlfiddle上的结构表和结果查询 我想使用查询: 但是我得到了错误: 请告诉我为什么会出现错误以及如何正确插入数据? 问题答案: 笔记 这不是一个好习惯,一点也不建议。您可能最终会得到重复的值,因此,让identity列为您生成

  • 我有这个对象显示在一个组合框中: 我想把这个列表显示到一个组合框中。 问题是如何将组的名称从对象显示到组合框中?

  • 鉴于 我有一个对象列表。 看起来像 我想将此转换为 i、 e.将个人类别整理成类别列表。 这是实现我想要的当前代码。 有什么方法可以使用流来做到这一点吗 这个问题在本质上类似于Group by和sum对象,比如SQLJavalambdas?但对我没有帮助,因为这里完成了聚合,而这里不是聚合。

  • 问题内容: 现在,我想创建一个新列表,其中包含中的所有值。这里的结果应该包含 问题答案: 使用以下方法尝试: