2016-07-04 4 views
0

一括読み込みファイルの元の順序を取得するにはどうすればよいですか?ファイル内にソート列がありません。SQLで一括読み込みファイルの元の順序を取得

Bulk insert [dbo].[temp] 
from 'C:\CSV\MyFile.csv' 
with ( 
    fieldterminator =';' 
    ,rowterminator='\n' 
    ,FIRSTROW=2 
    ,CODEPAGE ='ACP') 

は、私が使用して目標を達成しよう:

select 
ROW_NUMBER() OVER (order by (select 1)) AS RowNumber_approach1 
,ROW_NUMBER() OVER (order by %%physloc%%) AS RowNumber_approach2 
from dbo.tb 

と私は別の結果を得ます。どちらがあれば、アプローチは大丈夫でしょうか?私はそれをするべき他の方法はありますか?

+3

ファイルに並べ替えの列がない場合は、できません。 –

+0

@ZoharPeled私は私の質問で2つのアプローチを提示しました。あなたはどちらもうまくいきませんか? –

答えて

0

おそらく、インポート構造にID(int)フィールドを追加できます。これにより、元のロード順が維持されます。

+0

ID列がファイルと同じ順序を維持することは確かですか?バルクインサートがカードをシャッフルしていないことをどのように知っていますか? –

+0

はい、私は恐ろしい複数行の構造を持っていましたが、これは私が完全性を維持するための唯一の方法でした –

+0

どうやってそれをしますか?私は 'CREATE TABLE [dbo]。[temp]( [Auto_increment] int IDENTITY(1,1)PRIMARY KEY、' ...を追加しましたが、エラーが発生しました: '一括読み込みデータ変換エラー' –

関連する問題