這是我的問題:我有一個名爲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