SQL Server不使用自增实现User_ID从1000开始递增的问题咨询
User_ID手动自增功能实现记录
需求说明
需要实现User_ID字段从1000开始递增,每有新用户接入系统时自动计数累加。由于已经将ID字段设置为identity自增属性,因此不想再用自增功能实现该需求,便于后续备份时随时修改该字段值,SQL Server中创建的首个用户的User_ID为1000。
初始代码
最初编写的代码如下:
string query1 = "ALTER TABLE UserInfo WHERE User_ID ORDER BY User_ID ASC SET IDENTITY_CACHE=ON"; int i; cmd = new SqlCommand(query1); conn.Open(); // 此处遇到报错:"Connection property has not been initialized." i = Convert.ToInt32(cmd.ExecuteScalar()) + 1; conn.Close(); string query = "INSERT INTO UserInfo(User_ID, Name, Surname, Birth_Date, Reg_Date) VALUES (@User_ID, @Name, @Surname, @Birth_Date, @Reg_Date)"; cmd = new SqlCommand(query, conn); cmd.Parameters.AddWithValue("@User_ID", i); cmd.Parameters.AddWithValue("@Name", TextBox1.Text); cmd.Parameters.AddWithValue("@Surname", TextBox2.Text); cmd.Parameters.AddWithValue("@Birth_Date", TextBox3.Text); cmd.Parameters.AddWithValue("@Reg_Date", DateTime.Now.ToString()); conn.Open(); cmd.ExecuteNonQuery(); conn.Close();
修复后可运行代码
修改query1对应的代码段,修改后的内容如下:
// User_ID会在1000的基础上逐次加1 string query1 = "SELECT User_ID FROM UserInfo ORDER BY User_ID DESC"; cmd = new SqlCommand(query1, conn); conn.Open(); int i = Convert.ToInt32(cmd.ExecuteScalar()); i = i + 1; conn.Close();
修改后的代码可正常运行。
内容的提问来源于stack exchange,提问作者cervidaesj
相关产品推荐
相关产品推荐

