當ID列是主鍵並設置爲自動增量時,如何執行表插入命令?用自動增量主鍵在c#中插入一行到一個sql表中
我已經試過如下:
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的行。
是不是一個自動遞增鍵的整個點,你不*有*爲它傳遞一個值? –
你爲什麼要設置'IDENTITY_INSERT'? –
我讀了一個地方,你應該將ID設置爲0來自動增加。但是你是對的,如果你忽略它,它就會起作用。 – Tony