C#把SQL一个数据表中的数据全部替换到另一个表中时报SystemDataSqlClientSqlException当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时必须为表 SheBei_SunHao_Data 中的标识列指定显式值。
这个异常是由于目标表中存在一个自增列(IDENTITY列),而在插入数据时没有为该列指定显式值。解决这个问题的方法是使用SET IDENTITY_INSERT语句将目标表的IDENTITY列设置为ON,然后插入数据时为该列指定显式值。示例代码如下:
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "SET IDENTITY_INSERT SheBei_SunHao_Data ON; " +
"INSERT INTO SheBei_SunHao_Data (ID, Name, Age) " +
"SELECT ID, Name, Age FROM SheBei_SunHao_Data_Temp; " +
"SET IDENTITY_INSERT SheBei_SunHao_Data OFF;";
cmd.ExecuteNonQuery();
}
}
在以上代码中,我们首先使用SET IDENTITY_INSERT语句将目标表的IDENTITY列设置为ON,然后使用INSERT INTO语句将数据从源表插入到目标表中,并为IDENTITY列指定了显式值(即使用了源表中的ID列)。最后,我们使用SET IDENTITY_INSERT语句将目标表的IDENTITY列设置为OFF
原文地址: https://www.cveoy.top/t/topic/hame 著作权归作者所有。请勿转载和采集!