这个异常是由于目标表中存在一个自增列(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

C#把SQL一个数据表中的数据全部替换到另一个表中时报SystemDataSqlClientSqlException当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时必须为表 SheBei_SunHao_Data 中的标识列指定显式值。

原文地址: https://www.cveoy.top/t/topic/hame 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录