我有以下字段的表格
VouhcerID, VoucherNumber, VoucherDate, etc...
现在情况是一些凭证被拒绝了。我不需要在数据库中保留记录,但序列号应保留在数据库中。假设我在序列号JV001, JV002, JV003
的数据库中跟踪记录现在如果JV003
被拒绝。应该拒绝来自数据库的记录,但是当插入新记录时,它应该JV004
为VoucherNumber
。一种选择是在名为isdeleted
的数据库中添加一个布尔字段,并在记录被拒绝时将其设为true
。任何其他的建议
答案 0 :(得分:0)
我觉得你的选择听起来不错。
另一个选项是分隔列到两列
第1列:包含列的非整数部分(即上例中的JV)
第2列:包含数字部分,您可以将其设为 int identity 列,该列将保留序列号。
您必须将ID列的两列合并
答案 1 :(得分:0)
如何创建“计算列”。例如:('JV'+ CONVERT(nvarchar,[Rec_ID],(0)))
答案 2 :(得分:0)
更改表以添加标识列,每当有新插入时,只需插入如下:
alter table yourtable add id int identity(1,1)
INSERT INTO yourtable(VouhcerID,...)
select 'JV'+CASE WHEN len(cast(id as varchar)=1 then '00'+cast(id as varchar) else CASE WHEN len(cast(id as varchar)=2 then '0'+cast(id as varchar) else cast(id as varchar) end end,... from table