我正在寻找关于如何让数据库自动生成varchar列的票号(最好是通过SQL DB)的建议。我在DB中有以下表格:活动&案例,并希望格式为“Act000001”或“Cse000001”。这与标识列属性类似。
任何建议都将受到高度赞赏。
感谢。 生锈的
答案 0 :(得分:1)
触发。
无论如何,不要将它作为主要密钥使用 - 在SQL Server上,你的性能会受到很大影响。
将正常的标识列作为PK放入,然后将其用作普通的业务属性(对其具有唯一索引)。
您可以通过触发器,存储过程生成它们,无论您喜欢什么。预生成,后生成。无论你喜欢什么。
答案 1 :(得分:1)
如果您可以处理回滚等不可避免的丢失数字,并且如果每个表只需要一个前缀,我建议使用一个标识列(创建数字)和一个计算列来将字母和前导零添加到身份。如果比那更复杂,我建议一个触发器。这不应该只由应用程序处理,或者你最终会有人必须手动输入的记录混乱。你还需要处理竞争条件,所以要仔细设计。