Sql 将特定数据迁移到具有相同字段但大小和数据类型不同的另一个表

Sql 将特定数据迁移到具有相同字段但大小和数据类型不同的另一个表,sql,excel,tsql,sql-server-2008-r2,data-migration,Sql,Excel,Tsql,Sql Server 2008 R2,Data Migration,我正在通过导入将数据从excel迁移到SQL中的数据库,从而创建以字段nvarchar(255)为数据类型的物理表,excel文件中的元素来自将要导入的数据库的同一副本,但来自不同的环境,因此我确信excel文件中的数据在将要导入的字段中是兼容的。我的难题是,当我将excel中的数据导入SQL时,它会创建另一个数据类型为nvarchar(255)的物理表,而实际表的每个字段都有不同的数据类型 如果我要将所有数据从importedDataTable迁移到real MyTable,我将使用以下代码:

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

如果我要将所有数据从importedDataTable迁移到real MyTable,我将使用以下代码:

Insert into Mytable
(field1
,field2
..
..
..)
Select 
field1
,field2
..
..
..
from ImportedDatatable
通过这种方法,它将生成如下错误

String or binary data would be truncated.
所以为了解决这个问题,我需要从ImportedDatatable中转换每一个数据,从选择它开始工作,问题是我有很多表,其中一些表由100个字段组成,逐个转换它们需要时间。。那么有没有其他方法可以做到这一点


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

这个问题没有简单的解决办法,我很震惊。 我能想到的两个解决方案是:

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

2) 一种存储过程,用于将目标表上的每个nvarchar(255)列更改为其相应的列长度(取自信息\u schema.columns)


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

@downvoter您能解释一下原因吗?