我有一个UI,允许用户选择他们想要添加到表中的一个或多个字段。此数据还与orderID
关联,用于确定字段顺序。
当用户添加新字段时,我需要找到此用户使用的最后一个orderID
并将其递增1,然后提交所有新字段。
例如,如果数据库中已存在单个记录,则其{1}将为1.当我选择添加另外三个字段时,它将检查最后一个{{1我使用(1)然后为它添加的每个新记录增加它,1-4。
orderID
显然orderID
部分是我的问题所在,但希望有助于理解我想要做的事情。
可以使用哪种其他方法来解决这个问题?
答案 0 :(得分:1)
ROW_NUMBER()应该这样做。
select x.Value,
ROW_NUMBER() over (order by x.Value) + @lastID
from (
select 10 ParamValues.x1.value('selected[1]', 'int') Value
from @xml.nodes('/root/data/fields/field') AS ParamValues(x1)
) x
答案 1 :(得分:0)
您可以使用IDENTITY(1,1)
的列答案 2 :(得分:0)
如果您希望OrderID在整个表格中都是唯一的,请参阅以下内容:
点击here以查看解决此问题的其他帖子。
有多种方法可以解决这个问题,但在这种情况下,最简单但合理的方法可能是使用标识列。但是,这不像使用序列那样可扩展。如果您认为将来可能需要更多灵活性,请使用序列。
如果您希望OrderID在一个批次中插入的字段中是唯一的,请参阅以下内容:
你应该仔细看看Chris Steele的回答。