Sql server SQL Server大容量插入命令插入截至文件的无序数据

Sql server SQL Server大容量插入命令插入截至文件的无序数据,sql-server,Sql Server,我正在使用SQLServerBulkInsert将文件上载到临时表中。我必须使用一个将从MyBatis调用的存储过程 以下是详细的步骤: 程序MA060E\U项目导入\U程序: 我把这个过程称为: EXEC MA060E_ITEM_IMPORT_PROC @filePath = 'E:\myproc\YEM_Item_Data_20150206_40MB.TXT', @userId = 'j', @kinoId = 'MA071B' 文件:YEM_Item_Data_20150206_40MB

我正在使用SQLServerBulkInsert将文件上载到临时表中。我必须使用一个将从MyBatis调用的存储过程

以下是详细的步骤:

程序MA060E\U项目导入\U程序:

我把这个过程称为:

EXEC MA060E_ITEM_IMPORT_PROC @filePath = 'E:\myproc\YEM_Item_Data_20150206_40MB.TXT', @userId = 'j', @kinoId = 'MA071B'
文件:YEM_Item_Data_20150206_40MB.TXT

我想将数据放入TENTBL_FOR_文件表中,因为它在该文件中。但是当我运行这个过程时,它会给我不想要的结果。数据的顺序与文件中的顺序不同

样本输出:

首次运行:

第二轮:

同样,每次它都会给出不同的数据


我应该怎么做才能获得文件中的数据?

我能找出将数据按顺序放入表中的唯一方法是使用一个带有标识列的表,然后在order by子句中使用该列。我还没有尝试过,但是我假设可以使用带有大容量插入的格式化文件来实现这一点,这样您就可以只将数据加载到文本列。也可以使用视图,但不能使用temp。表。

请参阅-表中的数据未排序。查询时必须根据表中的数据指定排序顺序,否则结果可能会以任何顺序返回。在SQL Server表中,没有排序没有默认排序或系统给定的排序。如果您需要订单,则必须在您从表中选择时明确指定订单。关系中的数据通常是无序的,或者看起来处于某种自然顺序。我知道排序,但问题是,该文件将来自其他系统,因此无法保证数据的排序。
EXEC MA060E_ITEM_IMPORT_PROC @filePath = 'E:\myproc\YEM_Item_Data_20150206_40MB.TXT', @userId = 'j', @kinoId = 'MA071B'
2015/02/06                    Material Plant Data List                       1
--------------------------------------------------------------------------------
Material Plant Data List
---------------------------------------------------------------------
|Material   |Material Description                    |MRPC|SPT|ValCl|
---------------------------------------------------------------------
|8dsewre|8dsewre|mrpc9|50|7900|
|ITem01|Item01|mrpci|50|7920|
|ITem02|Item02|mrpci|50|7920|
|CA0000w   |BAR CODE LABEL       JAN AV             |SM0 |50 |7900 |
|CA00002   |BAR CODE LABEL       JAN AV             |SM0 |50 |7900 |
|CA0000d   |BAR CODE LABEL       JAN AV             |SM0 |50 |7900 |
.
.
.
Total 599849 Lines