请参阅下面的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