2017-03-28 40 views
0

我使用命令sqlSave(RODBC包的一部分)將數據添加到現有的MS SQL數據庫。當我運行一個簡單的「SELECT TOP 2000」查詢(表中只有1500行,所以所有的數據都被這個查詢顯示)時,數據庫中的原始表按日期排序,但是當我運行sqlSave時,新的數據被添加但該表不再按日期順序排列 - 某些行添加在頂部和一些底部。SqlSave - 日期不按順序附加到數據庫

我使用以下代碼:

sqlSave(channel, Mydataframe, MyTable, append=TRUE, rownames = FALSE, fast = FALSE) 

將R數據幀具有相同的列數(以相同的順序,並用相同的名稱)作爲表。

+0

我也注意到,在我的數據庫中,添加查詢表並不總是導致按順序分配的ID排序的表。但要記住的是,數據庫是存儲數據的地方。只要數據保持完整性,行的順序就無關緊要。如果您需要以特定方式對結果進行排序,則應在查詢(即SELECT)時不要保存時對其進行處理。 – Benjamin

+0

https://blogs.msdn.microsoft.com/conor_cunningham_msft/2008/08/27/no-seatbelt-expecting-order-without-order-by/ –

+0

爲了通過SQL獲得完全限定的查詢,必須指定和排序並將別名分配給保留的列名稱。如果沒有訂購,RS不能保證相同。 – WickedFan

回答

0

這是預期的行爲。表格沒有訂單,除非您在查詢中指定了ORDER BY,否則您的結果不能保證以任何特定的一致順序出現。

+0

謝謝大家的回答。這是有道理的 - 我會在其他地方使用必要的順序。 – user3734265