2013-06-12 47 views
0

我有一个SQL服务器数据库与MS访问前端。强制数据输入的顺序

我想强制数据按顺序输入到特定的表中。

例如,我只能在id = 1后输入id = 2,并且只能在添加了2和1后才能添加id = 3。

执行此操作的最佳方法是什么?我是否需要将限制添加到访问前端,还是需要向sql表中添加触发器或类似内容?

+0

是否有任何理由为什么你手动分配'ID'值而不是使用'IDENTITY'列?具有正增量值的“IDENTITY”列将(按照自己的设备)分配给增加(但不一定是顺序)顺序的ID,除非您明确地“RESEED”该表。 –

回答

0

如果您想这样做,请将该ID保留为主键并将其属性设置为identity(自动递增)。您无需插入该值。插入剩余的列,该ID将自动保存为1,2等等

1

我同意@Vamsi Pamula,你可以做到这一点。但是,如果你只想做你正在寻找的东西,那么:

首先,当用户试图输入新记录时,现在跟踪新的ID给定假设10。并且,在数据库中最大的ID第一查询之前,如:

选择ISNULL(MAX(ID),0)YourTable

假设上述查询返回8.所以,10不应该被允许。现在检查:

if (ReturnedValuefromAboveQry + 1 = NEWID) then 
    msgbox "Allowed." 
else 
    msgbox "Not Allowed." 
End If