Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 一个足够精确的日期时间字段,用于区分批量/批量插入中的行_Sql_Sql Server_Datetime_Ssis_Sql Server 2014 - Fatal编程技术网

Sql 一个足够精确的日期时间字段,用于区分批量/批量插入中的行

Sql 一个足够精确的日期时间字段,用于区分批量/批量插入中的行,sql,sql-server,datetime,ssis,sql-server-2014,Sql,Sql Server,Datetime,Ssis,Sql Server 2014,我正在使用SSI向各种表中插入500到300多万行。数据源是从平面CSV文件到另一个DB(Oracle、MySQL、SQL Server)的任何内容 我正在尝试创建一个“inserted_on”列,显示添加行的日期/时间戳,我需要它足够精确,以区分上一行和下一行。换句话说,每一行都应该有不同的日期时间值,即使它非常接近 我尝试了一个默认值为(gettime())的datetime2(7)字段,但这似乎不够精确。如前所述,您应该使用时间戳 请参阅或参阅其他详细信息 希望这能有所帮助。我认为,如果您

我正在使用SSI向各种表中插入500到300多万行。数据源是从平面CSV文件到另一个DB(Oracle、MySQL、SQL Server)的任何内容

我正在尝试创建一个“inserted_on”列,显示添加行的日期/时间戳,我需要它足够精确,以区分上一行和下一行。换句话说,每一行都应该有不同的日期时间值,即使它非常接近

我尝试了一个默认值为
(gettime())
datetime2(7)
字段,但这似乎不够精确。

如前所述,您应该使用
时间戳

请参阅或参阅其他详细信息


希望这能有所帮助。

我认为,如果您想保证知道插入的顺序,应该使用某种不断增长的ID字段来表示行插入,而不是依赖时间。正如您所注意到的,datetime2的最大精度不一定是唯一的。对于亚毫秒精度,请使用
SYSDATETIME()
而不是
GETDATE()
。然而。您可能仍然需要一个增量值来断开连接。注意:在SQL Server中,
CURRENT\u TIMESTAMP
属于数据类型
DATETIME
,与
TIMESTAMP
无关(这相当于
ROWVERSION
,与实际时间戳无关)。
ROWVERSION
上的文档还注意到,
TIMESTAMP
将因其价值而被弃用。感谢@ZLK的更新。谢谢!这个不推荐使用的消息让我感到震惊,因为我在SSIS导入中广泛使用它。所以现在我想知道我应该使用一个不断增长的ID还是
时间戳
/
行版本
?这是一个基于案例的判断调用。我们使用的是
时间戳
,每天提取的事务量达到数十万次,没有任何麻烦。顺序很重要。