我有批量记录导入SQL Server 2005表。我需要能够保持导入的顺序。我正在使用DateTime字段并将其填充到GETDATE(),但这不够精确。
那里有任何建议吗?
编辑,只是为了清理......我不在乎它们在表格中出现的顺序。我需要能够订购它们并维护它们的插入顺序。现在的问题是,当我使用我的DateTime字段进行ORDER BY时,由于缺乏精确度,几条记录会在同一日期出现。
答案 0 :(得分:2)
精度不够高,因为导入每秒导入的行数多于datetime数据类型中的精度?
您使用什么机制导入行?
我建议一个标准的标识列,它几乎可以保证增加(但是有人可以启用标识插入并在有间隙的地方插入一行,这可能发生在由于约束违规而回滚的事务期间或类似的。)
请注意,如果您有多个并行插入(不同的连接或其他),它们将是交错的,因此您无法使用简单的范围来查找来自特定源文件的所有内容,例如。
很多时候使用SSIS,我们在数据流期间分配给行的批处理中有一个批处理标识符和序列号(与目标表中可能存在的任何标识分开)。
答案 1 :(得分:1)
您没有提到如何导入记录,但是在表中添加自动递增标识列应该可以正常工作。