在不使用数据转换的情况下更新ssis中的表

时间:2013-04-22 05:50:14

标签: sql sql-server-2008 business-intelligence ssis

每当我尝试在ssis中将表从源表更新到目标表(sql server到sql server)时,我都会运行带有更新查询的存储过程。我通过OLE DB命令执行此SP。现在,要运行OLE DB命令,我必须执行从DT_WSTR到DT_STR的数据转换。

enter image description here

我的问题是:是否可以在没有此数据转换的情况下执行更新?令我感到困惑的是,我从sql server中提取数据并将数据推送到sql server。那么为什么varchar有不同的数据包含(DT_WSTR和DT_STR)?

但是,如果我只是插入,即没有更新(使用OLE DB命令)我不必做任何转换,我的SSIS包工作正常。现在没有DT_WSTR和DT_STR的问题,但只有当我尝试运行OLE DB命令时才会出现问题。现在如何将数据从nvarchar插入varchar?

enter image description here

如果这是一个愚蠢的问题,我很抱歉。我是SSIS的新手。

1 个答案:

答案 0 :(得分:2)

用于连接ADO.NET的{​​{1}}来源似乎默认情况下会将SQL Azure转换为varchar。因为目前nvarchar来源不能用于连接到OLEDB,在我的情况下,它会为您提供正确的列数据类型,因此您可以使用SQL Azure转换为Data ConversionDT_WSTR

DT_STR来源显示ADO.NET来源

Microsft Connect item
 DECLARE @column_value AS NVARCHAR(30)
 SET @column_value = ?
 UPDATE YOURTABLE 
 SET column1=convert(varchar(30),@column_value)