2017-03-28 7 views
0

既存のMS SQLデータベースにデータを追加するには、sqlSave(RODBCパッケージの一部)コマンドを使用しています。データベース内の元のテーブルは、単純なSELECT TOP 2000クエリを実行すると(すべてのデータがこのクエリで表示されるようにテーブルに1500行しかありません)、日付順に並べられますが、実行すると新しいデータが追加されますテーブルはもはや日付順になっていません - いくつかの行は上部に追加され、いくつかは下部に追加されます。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

関連する問題