这是我的问题:我有一个名为emp
的SQL Server数据库。它有一个employee
表(与userid int
列)。我需要在employee
表中检索userid
的最后一条记录,其中递增用户ID值为1.此刻,我在我的GUI上执行了此操作。那么如何为它编写一个sql查询?检索SQL Server表的最后一条记录
5
A
回答
1
您不应该手动增加userid列,而应使用IDENTITY列。这将自动为每个新行添加1。
CREATE TABLE Employees (
UserId INT IDENTITY PRIMARY KEY NOT NULL,
UserName NVARCHAR(255) NOT NULL,
// etc add other columns here
)
如果你真的真的要选择它是一个非常简单的查询最高的用户ID:
SELECT MAX(UserId) + 1
FROM Employees
[编辑]
根据您的意见,您应该使用SELECT MAX(UserId) + 1 FROM Employees
查询。但请注意,这并不能保证该号码将成为身份证。通常情况下,直到记录保存到数据库后才会显示Id值。
2
要返回最高的用户ID的记录,你可以这样做:
SELECT TOP 1 userid
FROM employee
ORDER BY userid DESC
或...
SELECT MAX(userid)
FROM employee
如果你的计划是再手动增加用户ID,并插入一个新的用这个新ID记录下来,我建议不要这样做 - 如果两个进程同时尝试这样做会怎么样?相反,请使用IDENTITY列作为用户标识符,并自动为您处理递增
-1
这会为您提供最后插入的记录,如果您没有标识列。
EXECUTE ('DECLARE GETLAST CURSOR DYNAMIC FOR SELECT * FROM [User]')
OPEN GETLAST
FETCH LAST FROM GETLAST
CLOSE GETLAST
DEALLOCATE GETLAST
如果您设置了标识,那么您可以使用以下内容。
SELECT top(1) ID from [YourTable] order by ID desc
+0
问题已解决感谢所有的快速响应 – 2011-01-27 10:15:05
-1
要在保存之前创建新的用户标识,请创建一个NextId表。
之前插入用户,从NextId获得新的价值:
UserId = SELECT Coalesce(NextId, 0) + 1 from NextId
然后更新NextID表:
UPDATE NEXTID SET NextId = IserID
,然后在用户创建代码使用该值
你可以获得差距,有更复杂的方法来避免它们;但我认为这会做
相关问题
- 1. 检索sql的最后一条记录
- 2. SQL检索sql查询中的最后一条记录
- 3. 检索SQL Server 2008中的最后n个记录
- 4. 检索最后插入记录的ID在SQL Server CE 4
- 5. 连接表的最后一条记录
- 6. SQL - 检索最近7天的最后一天记录
- 7. SQL Server 2005获取列的最后一条记录
- 8. sql server:我如何获取插入的最后一条记录?
- 9. SQL Server查询检索最新记录一组给定的ID
- 10. 检索过去7天当天的最后一条记录
- 11. 检索使用DbConnection插入的最后一条记录 - C#
- 12. MySQL的 - 检索最后一条记录在每个分组
- 13. 如何检索mysql中的最后一条记录?
- 14. 从最后一个记录检索后从postgresql拉记录
- 15. SQL Server - 更快的记录检索
- 16. 如何从表中检索最后2条记录?
- 17. 检索目标c中最后10条记录的最大值
- 18. 检索最后一条记录各组中没有主键
- 19. 查找单表链(SQL Server)的最后一个记录
- 20. 不从SQL Server检索记录
- 21. 如何获取sql表中的最后一条记录
- 22. 如何检索SQL Server中最近几个小时的记录
- 23. 从数据库检索每个组中的最后一条记录 - SQL Server 2005/2008
- 24. 从SQL Server数据库表中检索最后一个id
- 25. SQL查询检索三条记录
- 26. 获取最后一条记录在SQL中的WHERE条件
- 27. SQL Server最后25条记录查询优化
- 28. SQL Server在返回第一条记录和返回最后一条记录之间做什么?
- 29. 获取每个记录组的最后一条记录
- 30. 最安全的方式从表中获取最后一条记录ID
感谢您快速的依靠JK.but我的requiremnt是this.my gui有一个叫做new emloyee.so的表单,它有一个文本表达式,它显示了emp表中的用户id。当点击add新员工我想要显示该测试val作为emp id +1的最后一个值。 – 2011-01-27 10:07:08
如果您需要在实际添加员工之前显示新员工的ID,请使用上面的查询:SELECT MAX(UserId)+ 1 FROM Employees`。但是,当新员工实际保存时,这可能不会是Id号码。 – 2011-01-27 10:10:29