【发布时间】:2020-09-04 20:04:25
【问题描述】:
我有一个表来存档对用户信息的更改,其中主键是用户ID + 对特定用户信息的下一次更改的增量数。即用户 1234 的第一个键是 1234+000,随后对该用户信息的更改将在存档表(用户 1234 的下一行)中显示为 1234+001。
所以我已经有了表 dbo.userchanges,其中包含用户 1234 的以下信息:
userkey, userid, usercntxt, usergroup
1234+000, 1234, lms, _default
1234+001, 1234, lms, _general_use
如果发现用户的userctxt变成了'ils',那么下一行就是:
1234+002, 1234, ils, _general_use
我的问题是,如何使用 TSQL 为该用户插入第 1234+002 行,或者如果表已经有 1234+00n,我一般如何插入 1234+00n+1?
【问题讨论】:
-
哦……好老的“智能代码”。它们在 80 年代很流行。老实说,我建议避开这种设计。它非常死板,最终会在您的业务逻辑中不必要地添加许多低级逻辑。他们只是让事情变得复杂。请改用复合键,例如 (user, datetime) 或类似的。
标签: sql sql-server string tsql sql-insert