通过数据库自动生成varchar票号

发布于 2024-08-24 16:32:10 字数 160 浏览 7 评论 0原文

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

任何建议将不胜感激。

谢谢。 生锈的

I'm looking for suggestion on how to get the DB to auto generate Ticket numbers (preferably via the SQL DB) for a varchar column. I have the following tables in the DB: Activities & Cases and would prefer the format to be "Act000001" or "Cse000001". This would be something similar to the identity column property.

Any suggestion would be highly appreciated.

Thanks.
Rusty

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丿*梦醉红颜 2024-08-31 16:32:10

扳机。

不管怎样,不要使用它作为主键 - 在 SQL Server 上,您只会受到巨大的性能影响。

将普通身份列放入 PK,然后将其用作普通业务属性(其上的唯一索引)。

您可以通过触发器、存储过程或任何您喜欢的方式生成它们。预生成、后生成。不管你喜欢什么。

Trigger.

Whatever, do NOT USE THIS AS PRIMARY KEY - on SQL Server you just have a hugh performance hit.

Put in a normal identity column as PK, then use this as normal business property (unique index on it).

You can generate them via trigger, stored procedure, whatever you like. Pregenerate, postgenerate. Whatever you like.

娇妻 2024-08-31 16:32:10

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

If you can handle the inevitable missing numbers from rollbacks, etc. and if you only need one prefix per table, I suggest an identity column (to create the numbers) and a calculated column to add the letters and leading zeros to the identity. If more complex than that, I suggest a trigger. This should not be handled by the application only or you will eventually have records that someone had to manually enter that are messed up. You also need to handle race conditions, so design carefully.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文