SQL Select语句用于动态表中的最后一个条目

时间:2014-07-28 17:41:54

标签: sql select coldfusion sql-order-by

我有一个允许编辑此数据表的表单。当编辑某些字段时,我需要它自动在另一个数据库中创建一个条目(我已经找到了那个部分)。 not必须包​​含变量在编辑之前的内容以及变量的编辑内容(即"用户的电子邮件已从something@somewhere.com更改为somewherer@something.com") 。

通过下面的陈述,我试图从上一个条目中提取信息,这样我就可以显示该变量已被更改为什么。 StartDate是日期/时间变量,是唯一可用于提取按时间顺序排列的变量。

SELECT Top 1 *    
FROM [Table].[dbo].[Users]
WHERE TRACK_Num = <cfqueryparam value="#form.ID#" cfsqltype="cf_sql_integer">
ORDER BY StartDate DESC

此方法的主要问题是它始终选择相同的条目,而不是选择通过表单创建的新条目。

注意:我已编辑该条目以包含更多详细信息。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

如果我没错,那么你正在考虑获取表格的最后一个插入ID。

declare @newID int 
insert into table (fields) values (values)
set @newID = scope_Identity(); // gets the latest inserted id.
select @newID

注意:ID字段的标识规范必须为true。

现在您可以查询:

SELECT Top 1 *    
FROM [Table].]dbo].[Users]
WHERE TRACK_Num = @newID
ORDER BY StartDate DESC

答案 1 :(得分:1)

如果您的字段是日期,而不是日期时间,那么如果您在同一天内有多个条目,则会遇到问题。

StartDate DESC和ID DESC的排序应该解决这个问题。