通过DB自动生成varchar票号

时间:2010-03-08 15:47:45

标签: sql identity autogeneratecolumn

我正在寻找关于如何让数据库自动生成varchar列的票号(最好是通过SQL DB)的建议。我在DB中有以下表格:活动&案例,并希望格式为“Act000001”或“Cse000001”。这与标识列属性类似。

任何建议都将受到高度赞赏。

感谢。 生锈的

2 个答案:

答案 0 :(得分:1)

触发。

无论如何,不​​要将它作为主要密钥使用 - 在SQL Server上,你的性能会受到很大影响。

将正常的标识列作为PK放入,然后将其用作普通的业务属性(对其具有唯一索引)。

您可以通过触发器,存储过程生成它们,无论您喜欢什么。预生成,后生成。无论你喜欢什么。

答案 1 :(得分:1)

如果您可以处理回滚等不可避免的丢失数字,并且如果每个表只需要一个前缀,我建议使用一个标识列(创建数字)和一个计算列来将字母和前导零添加到身份。如果比那更复杂,我建议一个触发器。这不应该只由应用程序处理,或者你最终会有人必须手动输入的记录混乱。你还需要处理竞争条件,所以要仔细设计。