自动生成ID

lyatcq 2003-09-11 05:57:05
表有一列为ID号,该ID号由存储过程根据现有最大ID号加1生成,当客户端点击新增时调用存储过程,得到新添记录的ID。点击新增按钮后需要输入其他信息,再点击保存按钮向表中插入新值,也允许不添加新值。如果有另一客户端在此时查询该表将得到同样的新ID,请问该如何解决。


...全文
91 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyatcq 2003-09-11
  • 打赏
  • 举报
回复
如果按lxf31的方法,取消后表中ID就会出现跳跃。
lyatcq 2003-09-11
  • 打赏
  • 举报
回复
我没说清楚吧,问题不在存储过程,而是如果出现两个客户端得到相同的ID,那么新增后表中的两行ID就会一样,该怎么避免或解决?
lxf31 2003-09-11
  • 打赏
  • 举报
回复
go
lxf31 2003-09-11
  • 打赏
  • 举报
回复
create proc IDNew
as
begin
declare @IdNew int
set @IdNew=(select max(TableName.ID) from TableName
Insert Into TableName(ID) values @IdNew
end
go
--------------------------------
create proc client
@IdNew int output
as
select @IdNew=max(ID) From TableName
sdhdy 2003-09-11
  • 打赏
  • 举报
回复
--如果不添加新值的话,别的客户端可以用这同样的新ID
create proc test
@id int output
as
select @id=max(id)+1 from tablename

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧