由于表中数据在删除记录后要进行序号的维护,所以没用identity
现想用insert触发器来实现id的自动增加,如下:
declare @id smallint
select @id=max(userid) from Tab_User
set @id=@id + 1
update Tab_User
set userid=@id where userid=NULL
可结果每条记录的userid都改变了,该怎么做阿?
...全文
1675打赏收藏
用触发器实现自动增加序号的问题!
由于表中数据在删除记录后要进行序号的维护,所以没用identity 现想用insert触发器来实现id的自动增加,如下: declare @id smallint select @id=max(userid) from Tab_User set @id=@id + 1 update Tab_User set userid=@id where userid=NULL 可结果每条记录的userid都改变了,该怎么做阿?
不用触发器。
create function getDH()
returns char(10)
As
begin
declare @dh1 smallint
select @dh1 = max(dh) from tableName
set @dh1 = IsNull(@dh1,0) + 1
return(@dh1)
end
set nocount on
declare @id smallint
select @id=max(userid) from Tab_User
set @id=@id + 1
update Tab_User set userid=@id from inserted where Tab_User.userid=inserted.userid