這是可行的嗎?原因是我使用了一個像隊列一樣的表格,依次彈出TOP(1)元素進行處理。我想插入一些行來立即處理。順便說一句,謝謝。SQL Server CE:將行插入表頂部
1
A
回答
4
您需要一個列來維護訂單,身份或時間戳。然後你可以通過「x desc」選擇「top(1)order」來獲得最近的。
0
1)如果你使用表格作爲隊列,你使用的工具是錯誤的工具。表格是固有的無序數據集。這是因爲
2)行可以根據其任何字段的值進行排序。這意味着您可以通過向該行添加一個值(通常是ID)並在表格中的其他行之前添加一個值來「插入」中間的內容。
爲什麼使用數據庫表來做到這一點?你顯然正在尋找一個優先隊列。如果您這樣做是因爲您希望在軟件失敗時正在處理的作業持續存在,請考慮將所有項及其優先級添加到表中,然後將其取出並插入到適當的優先級隊列中軟件,將您的數據存儲從您的調度機制中分離出來。
+0
我知道表是什麼,但有時也有這份工作沒有合適的工具。我需要一個持久的事務存儲和msmq或類似的東西,這是不可能安裝的。由於只有一個應用程序訪問商店,SqlServer CE似乎是最好的選擇,它的表現相當好。 – Pablote 2009-02-16 13:05:01
3
你的數據庫(連同您的身份)創建一個優先級列,然後排序就可以了:
CREATE TABLE myqueue(priority INT NOT NULL, id INT IDENTITY NOT NULL PRIMARY KEY, payload VARCHAR(200) NOT NULL)
CREATE INDEX ix_myqueue(priority, id)
INSERT
INTO myqueue (priority, payload)
VALUES (0, 'Regular message')
INSERT
INTO myqueue (priority, payload)
VALUES (1, 'Urgent message')
SELECT id, payload
FROM myqueue
ORDER BY priority DESC, id DESC
TOP 1
id | payload
2 | Urgent message
DELETE
FROM mytable
WHERE id = 2
SELECT payload
FROM myqueue
ORDER BY priority DESC, id DESC
TOP 1
id | payload
1 | Regular message
DELETE
FROM mytable
WHERE id = 1
相關問題
- 1. 插入行和SQL Server CE
- 2. SQL Server CE插入/更新多行
- 3. 插入表中sql的行數頂部
- 4. 插入SQL Server CE數據庫
- 5. Sql Server CE插入失敗無錯
- 6. Sql Server CE 4插入默認值
- 7. SQL SERVER插入表一行
- 8. SQL Server CE加入兩個表
- 9. 需要幫助寫入SQL Server CE表
- 10. 無法將記錄插入到SQL Server CE數據庫中
- 11. 將數據插入SQL Server CE的Windows Phone的
- 12. 將記錄插入表格頂部
- 13. 將SQL Server Express表複製到vs2012的SQL Server CE表中
- 14. 導入Excel到SQL Server CE
- 15. 在SQL Server CE和C#中獲取新插入行的主鍵?
- 16. 如何在SQL Server CE數據庫中插入多行?
- 17. 逐行插入到SQL Server CE數據庫中
- 18. 插入新行的表R的頂部
- 19. 在表格頂部插入行
- 20. 的SQL Server CE插入拋出「表名稱是無效」
- 21. 使用SQL Server CE中的select和values插入到表中
- 22. 檢索ODBC表並插入到SQL Server CE數據庫中
- 23. 如何插入只有一個IDENTITY列的表(SQL Server CE)
- 24. 在qtablewidget頂部插入行
- 25. SQL Server CE +外部SQL文件
- 26. SQL CE 3.5插入到多個表中
- 27. SQL Server CE的更新表
- 28. SQL Server CE到SQL Server
- 29. 將SQL Server CE數據移入SQL Server進行編輯並返回
- 30. 將SQL Server 2008表遷移到SQL Server CE
我正在考慮這樣的事情,添加一個優先級列並按順序排序。希望它允許我修改非空表的模式,謝謝。 – Pablote 2009-02-16 13:06:03