You need to enable JavaScript to run this app. SQL Server不使用自增实现User_ID从1000开始递增的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 22:57:03