【发布时间】:2014-11-14 09:21:48
【问题描述】:
我想要表格中每一行的订单信息。以下是我的表。 ID 列是标识及其主键。 order 列是从 id 列计算出来的。
ID -- Name -- Order
1 kiwi 1
2 banana 2
3 apple 3
一切都很好,我有一个订单列。但我不能切换行的顺序。 例如,我不能说从现在开始 kiwi 的订单变成 2,banana 的订单变成 1 换句话说,如果我们更新一个计算列,那么我的问题就可以解决了。
如果我不将订单列创建为计算列,那么对于每个新条目,我必须计算最大订单,以便我可以为新条目的订单写入(最大订单)+ 1。但是我没有计算每个条目的最大数量,因为它很昂贵。
那我现在该怎么办?
我已经搜索并找到了创建触发器功能等的解决方案。我也不想这样做。
【问题讨论】:
-
不清楚:“如果我们要更新一个计算列,那么我可以创建从 ID 列计算的订单列,我的问题就可以解决了。” 这是什么意思?为什么不能更新
order-column?` -
是列'ID' IDENTITY ??
-
您获得下一个订单为(最大订单)+ 1 AS 每个您的名称列或从整个订单列获得最大订单?
-
@TimSchmelter 订单列是计算列。所以我不能改变它。我已经编辑了我的问题
-
@KrishKvR 是的 ID 是身份。这就是为什么订单不能是身份,如果我们可以在 sql server 中创建两个身份列,那么一切都可以解决我的问题
标签: sql sql-server calculated-columns