查看数据类型映射错误

时间:2016-01-10 15:16:03

标签: sql sql-server dts

请参阅下面的DDL:

 create table test (id int identity not null, field1 varchar(30),
field2 nvarchar(30), dateadded datetime, primary key (id))

insert into test (field1,field2,dateadded) values ('Test1', 'Test2','2016-01-01')
insert into test (field1,field2,dateadded) values ('Test3', 'Test4', '2015-01-01')
insert into test (field1,field2,dateadded) values ('Test5', 'Test6','2014-01-01')

'test'表在[Server 1] .Database1。

上创建

我想使用DTS将数据传输到[server 2] .database2(只是记录的一个子集)。我将[Server1] .database1指定为源,将[server 2] .database2指定为目标。我指定了一个源查询:select * from test where dateadded> ='2016-01-01'

然而,我被要求审查数据类型映射问题。我不知道如何在源查询中解决这个问题。我该如何解决?

以下是有关源服务器1(版本和整理)的一些信息:

 Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) 
        Sep 21 2011 22:45:45 
        Copyright (c) 1988-2008 Microsoft Corporation
        Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (VM) 
Latin1_General_CI_AS

这里有一些关于目标服务器2的信息(版本和整理):

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) 
    Jun 28 2012 08:36:30 
    Copyright (c) Microsoft Corporation
    Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
Latin1_General_CI_AS

如果我使用源表而不是源查询,那么它可以工作。但是,源表包含8000万条记录,我只需要大约10,000条记录,这就是我使用源查询而不是源表的原因。

错误是:“找到2个未知的列类型转换。您只能保存包”

如何解决源查询中的数据类型映射问题?我试过这个:

select field1 collate Latin1_General_CI_AS,field2 collate Latin1_General_CI_AS,dateadded from test 

0 个答案:

没有答案