如何根据用户插入更改标识列

时间:2014-03-14 12:34:35

标签: sql-server

我有

table test (id int identity (1,1) , name varchar)   

列名在(group1,或group2,或group 3)中,当用户插入特定组时,我们想要的是重新设置的id列要更改。所以每个名称组都有一个特定的身份种子,感谢您的帮助

required results  
-----------------------
id     | name 
----------------------
1000   | group1               
1001   | group1   
2000   | group2   
2001   | group2    
3000   | group3   
3001   | group3   
3003   | group3 

2 个答案:

答案 0 :(得分:1)

在这种情况下,您不应该设置表的自动增量。将此逻辑保留在您的应用程序中,并配置该组1,将具有可用的ID,例如1-1000。当你用完第1组的Ids时,这显然会导致问题 - 但是这种类型的逻辑应该在应用层处理。

答案 1 :(得分:-1)

创建接受名称(组)的UDf 像

Create function GenerateID(@name varchar(50))
returns int
as
Begin
Declare @i int
Select @i=max(id) from table1 where name=@name
return @i+1

End