当使用列列表只能指定表'表'的标识列一个明确的价值和IDENTITY_INSERT为ON [英] An explicit value for the identity column in table 'Table' can only be specified when a column list is used and IDENTITY_INSERT is ON

查看:187
本文介绍了当使用列列表只能指定表'表'的标识列一个明确的价值和IDENTITY_INSERT为ON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有人知道这是什么错误
(当使用列列表只能指定表'HD_AANVRAAG_FASE'的标识列一个明确的价值和IDENTITY_INSERT为ON。

说明:在当前Web请求的执行过程中发生未处理的异常。请查看有关错误的详细信息的堆栈跟踪以及它起源于code。

异常详细信息:System.Data.SqlClient.SqlException:当使用列列表和IDENTITY_INSERT为ON表'HD_AANVRAAG_FASE'的标识列的显式值只能指定)的意思。?
任何帮助是AP preciated。

 私人无效Insert2()
    {
        康涅狄格州的SqlConnection =新SqlConnection(ConfigurationManager.ConnectionStrings[\"HELPDESK_OUTLOOKConnectionString3\"].ToString());        conn.Open();
        的SqlCommand dCmd2 =新的SqlCommand(
            INSERT INTO HD_AANVRAAG_FASE VALUES(@fase_id,@aanvraag_id,@status_id
                +@werknemer_id,@fase_datum)SET IDENTITY_INSERT HD_AANVRAAG_FASE OFF,
            康恩);        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,2001年12月12日);
        dCmd2.ExecuteNonQuery();
        conn.Close();
    }


解决方案

既然你没有指定明确的专栏中,我假设 @fase_id 被传递到身份列,它的错误指示你不能这样做,除非你通过 IDENTITY_INSERT 。

通常情况下,你让DB生成此;在插入并指定列 省略标识列(不要尝试分配一个值)。在插入您的新的ID后,直可作为 SCOPE_IDENTITY()

Does someone know what this error (An explicit value for the identity column in table 'HD_AANVRAAG_FASE' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: An explicit value for the identity column in table 'HD_AANVRAAG_FASE' can only be specified when a column list is used and IDENTITY_INSERT is ON.) means? Any help is appreciated.

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();
    }

解决方案

Since you aren't specifying the columns explicitly, I assume @fase_id is being passed into an IDENTITY column, which as the error indicates you can't do unless you force it via IDENTITY_INSERT.

Usually, you let the DB generate this; specify the columns in the INSERT and omit the identity column (and don't try to assign a value). The straight after the INSERT your new id is available as SCOPE_IDENTITY().

这篇关于当使用列列表只能指定表'表'的标识列一个明确的价值和IDENTITY_INSERT为ON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆