【问题标题】:Migrating a specific data to another table with same fields but different sizes and datatype将特定数据迁移到具有相同字段但大小和数据类型不同的另一个表
【发布时间】:2014-05-08 02:05:11
【问题描述】:

我正在通过导入将数据从 excel 迁移到 SQL 数据库中,从而制作具有字段 nvarchar(255) 作为其数据类型的物理表,excel 文件中的元素来自数据库的同一个副本它将被导入但来自不同的环境,所以我确信 excel 文件中的数据在将被导入的字段中是兼容的。我的挣扎是,当我将 excel 中的数据导入 SQL 时,它会创建另一个数据类型为 nvarchar(255) 的物理表,而真实表的每个字段都有不同的数据类型

如果我要将所有数据从importedDataTable 迁移到真正的MyTable,我会使用如下代码:

Insert into Mytable
(field1
,field2
..
..
..)
Select 
field1
,field2
..
..
..
from ImportedDatatable

通过这种方法会产生类似的错误

String or binary data would be truncated.

因此,为了解决此问题,我需要从 ImportedDatatable 中选择每个数据以使其正常工作,问题是我确实有很多表,其中一些表包含 100 个字段,并将它们一一转换花点时间..那么有没有其他方法可以做到这一点??

顺便说一句。链接服务器选择不是一个选项,因为两台服务器来自不同的环境,并且公司政策不允许链接它。有什么帮助吗?

【问题讨论】:

  • @downvoter 你能解释一下原因吗?

标签: sql excel tsql sql-server-2008-r2 data-migration


【解决方案1】:

对此没有简单的解决方案,我很害怕。 我能想到的两个解决方案是:

1) SSIS 包:创建 OLE DB 源和目标,并使其忽略截断错误。

2) 将每个 nvarchar(255) 列更改为目标表上相应列长度的存储过程(取自 information_schema.columns)

在这两种情况下,列名匹配的事实使任务不会太艰巨。

【讨论】:

    猜你喜欢
    • 2016-09-01
    • 2016-01-20
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2017-06-30
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多