如果在表格中没有Uniqueidentifier or identity
列,我怎样才能获得最后插入的行。
我在等你的好主意。
答案 0 :(得分:4)
您需要某种方法来识别行的顺序以确定它。像“创建日期”或IDENTITY列。
答案 1 :(得分:2)
你做不到。表由一组无序行*组成。例如,如果您需要知道插入行的时间,则需要将该信息添加到表定义中(通过添加新列)并适当填充它。
*即使面对聚集索引,总是将表视为无序行集也更健康。聚簇索引很有用,但它不保证任何特定的物理排序(如Martin对此答案的评论)
答案 2 :(得分:2)
如果你想从没有uniqueIdentifier或identity的表中获取最后一行,那么你可以使用insert trigger。
答案 3 :(得分:0)
不相信你可以。您需要某种标识符来提取数据。 ID,DateTime ..任何总是与其他人不同的东西。
答案 4 :(得分:0)
如果按存储过程插入内容,则应使用SELECT SCOPE_IDENTITY(),它将返回在当前会话中创建的最后一个标识值,但它也会将其限制为当前范围。 通过这种用法,您将无法获得可能由触发器引起的最后插入的身份。
如果您将结果用于相同或被称过程中的插入操作,请记住这一点。
答案 5 :(得分:-1)
DECLARE @IDs TABLE(id int)
insert into TableName(TableID, TableRowValue)
output inserted.TableID into @IDs
values(857, 'Test');
- 插入的标识将位于@IDs
表变量