我有一个允许编辑此数据表的表单。当编辑某些字段时,我需要它自动在另一个数据库中创建一个条目(我已经找到了那个部分)。 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
此方法的主要问题是它始终选择相同的条目,而不是选择通过表单创建的新条目。
注意:我已编辑该条目以包含更多详细信息。谢谢你的帮助。
答案 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的排序应该解决这个问题。