设想:
名为“Test”的 Sql Server 2012 表有两个字段。“CounterNo”和“Value”都是整数。
定义了 4 个序列对象,分别命名为 sq1、sq2、sq3、sq4
我想在插入上做这些:
- 如果 CounterNo = 1则 Value = sq1的下一个值
- 如果 CounterNo = 2则 Value = sq2的下一个值
- 如果 CounterNo = 3则 Value = sq3的下一个值
我认为,创建一个自定义函数将其分配为 Value 字段的默认值。但是当我尝试自定义函数时,不支持“序列对象的下一个值”
另一种方法是使用触发器。该表已经触发。
对插入使用存储过程是最好的方法。但是 EntityFramework 5 Code-First 不支持它。
你能建议我实现这一目标的方法吗?
(如果你告诉我如何使用自定义函数来完成它,你也可以在这里发布它。这是我的另一个问题。)
更新: 实际上,该表中有 23 个字段,并且还设置了主键,我正在使用“计数器表”在软件端生成此计数器值。在客户端生成计数器值并不好。
我使用 4 个序列对象作为计数器,因为它们代表不同类型的记录。
如果我同时在同一记录上使用 4 个计数器,它们都会生成下一个值。我只希望相关计数器生成它的下一个值,而其他计数器保持不变。