C# 解决 SQL 数据表替换错误: '仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'SheBei_SunHao_Data'中的标识列指定显式值。'
这个错误是因为你尝试将一个含有自增长标识列的数据表中的数据全部替换到另一个表中时,没有将自增长标识列设置为可插入的状态(即IDENTITY_INSERT为ON)。解决方法是在执行数据插入前先设置IDENTITY_INSERT为ON,插入完成后再将其设置为OFF。示例代码如下:
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
// 设置IDENTITY_INSERT为ON
SqlCommand cmdIdentityOn = new SqlCommand("SET IDENTITY_INSERT SheBei_SunHao_Data ON", conn);
cmdIdentityOn.ExecuteNonQuery();
// 执行数据插入
SqlCommand cmdInsert = new SqlCommand("INSERT INTO SheBei_SunHao_Data (列1, 列2, 列3) SELECT 列1, 列2, 列3 FROM 源数据表", conn);
cmdInsert.ExecuteNonQuery();
// 设置IDENTITY_INSERT为OFF
SqlCommand cmdIdentityOff = new SqlCommand("SET IDENTITY_INSERT SheBei_SunHao_Data OFF", conn);
cmdIdentityOff.ExecuteNonQuery();
conn.Close();
}
原文地址: https://www.cveoy.top/t/topic/oDku 著作权归作者所有。请勿转载和采集!