当 ID 列为主键并设置为自动增量时,如何执行表插入命令?
我尝试了以下方法:
using (SqlConnection conn = new SqlConnection(connstring))
{
SqlCommand identChange = conn.CreateCommand();
identChange.CommandText = "SET IDENTITY_INSERT table1 ON";
conn.Open();
string commtext = @"Insert INTO table1 (ID, Username)
SELECT @ID, @User";
SqlCommand comm = new SqlCommand(commtext, conn);
comm.Parameters.AddWithValue("@ID", -1);
comm.Parameters.AddWithValue("@User", loggedinuser);
identChange.ExecuteNonQuery();
comm.ExecuteNonQuery();
conn.Close();
}
但无论将什么值放入 ID(我尝试过 0 和 -1),它都会在 ID 列下创建一个具有该值的新行。结果,当我尝试插入下一行时,它给了我一个错误,因为现在我有两行具有相同的 ID。