sql server 流水号的问题
最近做一个问卷调查,要把调查对象的回答输入数据库中,想弄个调查对象的流水号.上网一看头都大了,找到了下面这句话: 
  "可以把流水号保存到一个单独的表中,在真正追加数据时才更新最大流水号+1 " 
 这样怎么实现呢?   
 我的库是这样建的 
 调查对象流水号      主键 
 题号      主键 
 答案       
 备注 
------解决方案--------------------identity列
------解决方案--------------------自动增长得了
------解决方案--------------------CREATE PROCEDURE [dbo].[SSNGeneratorInstre] 
 	@SSNType varchar(100),@CurrentValue int OUTPUT  
 AS   
     update SSNGenerator set CurrentValue = CurrentValue+1 where SSNType = @SSNType       
     select  @CurrentValue=CurrentValue from SSNGenerator where SSNType = @SSNType 
------解决方案--------------------用计算列来实现呢?
------解决方案--------------------新增一个表 流水号表(流水号 INT)   初始值为200700100001    
 然后新增加一个人的问卷结果的时候,就先 select max(流水号) from 流水号表   
 然后新的这个人的流水号等于 查询出的流水号 + 1   
 存储过程写法如下: 
 DECLARE @FID INT 
 SELECT @FID = MAX(流水号) from 流水号表 
 SET @FID = @FID + 1   
 INSERT INTO 结果表  
     SELECT @FID ,题目.....
------解决方案--------------------可以在程序端解决这个问题,写一个静态方法,TOP1上一个订单号,然后把字符串转换一下,再++,获得新的订单号
------解决方案--------------------可以把流水号保存到一个单独的表中,在真正追加数据时才更新最大流水号+1 
 ------------------------------------------ 
 还是比较容易实现的,需要注意 
 1、Transaction 的commit 
 2、如果数据量比较大,需要定义多个表来保存序列号,否则会造成数据表的频繁访问大致性能下降   
 你需要我给写一个