这个异常是由于目标表中存在一个自增列(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 数据表替换异常:'IDENTITY_INSERT' 设置问题解决方法

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

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