当使用列列表只能指定表'表'的标识列一个明确的价值和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
问题描述
是否有人知道这是什么错误
(当使用列列表只能指定表'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屋!