2

我正在编写一个小实用程序来将数据库从专有 ODBC 数据库复制到 SQL Server 数据库中。一切都很好,除非我使用 SQLBulkCopy 复制数据。它在大多数情况下都有效,但在尝试将 TIME 字段复制到 SQL DATETIME 时无效。我收到此错误:

来自数据源的 TimeSpan 类型的给定值无法转换为指定目标列的日期时间类型。

当我在 SQL Server 中创建架构时,我必须在 SQL Server 中创建 DATE 和 TIME 字段 DATETIME 类型,所以没有办法解决这个问题。我想使用 SQLBulkCopy,因此我不必手动读取每个表中的每条记录并围绕特殊情况包装逻辑。在我走这条路之前,还有其他方法可以做到这一点吗?我完全无法控制源数据库架构或内容。

4

1 回答 1

1

我假设您正在处理 SQL Server 2008 之前的版本。SQL Server 2008 具有 DATE 和 TIME 数据类型。

我认为您必须使用与 SQL Server 架构匹配的 DataTable 并从源阅读器加载它,通过添加日期信息(例如 1/1/1900)适当地将任何 TIME 更改为 DATETIME。然后使用 WriteToServer(DataTable)。您可能希望分批执行此操作,因为您可能会使用大量内存将其全部读取到 DataTable 中。

您不能使用 SSIS 的任何特殊原因?

于 2010-07-26T01:53:10.603 回答