SSIS中的别名参数

8

我在SSIS中使用OLE DB命令,其中SQL命令如下:

UPDATE DBO.CLIENT
SET
    TimeZoneID = ?,
    DaylightSavingTime = ?,
    ModifiedBy = ?,
    MicrosPropertyID = ?,
    IsOffline = ?,
    GlobalReporting_MaskPatronNumberType = ?,
    GlobalReporting_PatronNumberReadableCharacters = ?,
    GlobalReporting_MaskPrimaryCardType = ?,
    GlobalReporting_PrimaryCardReadableCharacters = ?,
    BICAddedDateTime = ?,
    BICUpdatedDateTime = ?,
    IsDBInDailyBoardRate = ?
WHERE 
    ClientID = ?

当我尝试进行列映射时,这些参数显示为PARAM_0、PARAM_1、PARAM_2、PARAM_3等。有没有办法让它们显示为列名?

2个回答

5
我发现SSIS会从存储过程中读取列名,而不是从OLE DB命令的SQL语句中读取列名!
然而,它不会忽略参数名称中的@符号,因此智能匹配无法将CustomerId与@CustomerId匹配。
对于使用存储过程的每个人都加1分。 :-)

3

在输入/输出属性选项卡中(位于“外部列”下),您可以手动重命名它们,但它们始终会实例化为 PARAM_0PARAM_1,...


@Eric:SSIS 2008 不允许我更改名称。 - Raj More
@Tapori:你说得对,我想的是OLEDB数据源。已更新为反映OLEDB命令任务。 - Eric
@Eric:如果你使用存储过程而不是SQL命令,SSIS会识别参数并按名称提取它们,而不是PARAM_0、1等。我会立即尝试你建议的方法。 - Raj More
@Eric:我在SSIS中发现了一个bug。我可以将其重命名,但是如果我关闭并重新打开SSIS,它会恢复到原来的名称。 - Raj More

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接