获取最新更新的sql表行

时间:2012-02-09 01:54:43

标签: php sql sql-server

我有一个名为tbl_faults的SQL Server数据库表。在该表中fault_id是主(int)和自动递增。在同一个表中,我有另一个名为fault_reference(int)的字段,而不是自动递增。

当我向表格输入数据时,fault_reference值应与fault_id的值相同。

任何人都可以建议我这样做。

$sql='SELECT Top 1 FROM "tbl_faults" ORDER BY "fault_id"';

我试图使用它来获取fault_id的最后更新值,并在插入新行时使用它,但这似乎不起作用。

3 个答案:

答案 0 :(得分:2)

SELECT fault_id FROM tbl_faults ORDER BY fault_id DESC LIMIT 1

应该提供插入的最后一个ID。

答案 1 :(得分:0)

我认为你可以通过

得到这个
$sql='SELECT Top 1 FROM "tbl_faults" ORDER BY "fault_id" DESC ';

要更新您的记录,我认为您可以使用两种方法。

  1. 在插入完成后编写触发器以更新行

  2. 设置fault_reference int NULL允许。然后编写更新查询以将行fault_reference值更新为fault_id,其中fault_reference为NULL。

  3. 这只是一个想法。请检查。

答案 2 :(得分:0)

我认为,最好使用SCOPE_IDENTITY函数在单个存储过程中执行此操作,该函数返回插入同一范围内的标识列的最后一个标识值。范围是一个模块:存储过程,触发器,函数或批处理。因此,如果两个语句在同一存储过程,函数或批处理中,则它们在同一范围内 因为当您在几批中进行此操作时,可能会在另一批中增加fault_id