2009-07-16 16 views
8

J'utilise une commande OLE DB SSIS pour lequel la commande SQL ressemble à ceci:paramètres Alias ​​dans SSIS

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

Lorsque je tente de faire les mises en correspondance de colonne, ces paramètres apparaissent comme PARAM_0, PARAM_1, PARAM_2, PARAM_3, etc. Existe-t-il un moyen de les faire apparaître comme le nom de la colonne?

Répondre

4

J'ai trouvé que SSIS lire la colonne noms d'une procédure stockée au lieu de la commande SQL pour la commande OLE DB!

Cependant, il n'ignore pas le @ pour le nom du paramètre et, par conséquent, la correspondance intelligente ne fonctionne pas pour CustomerId par rapport à @CustomerId.

+1 pour tout le monde qui utilise des processus stockés. :-)

3

Vous pouvez les renommer manuellement dans l'onglet Propriétés d'entrée/sortie (ils résident sous la rubrique « Colonnes extérieures »), mais ils seront toujours instancier à PARAM_0, PARAM_1 ...

+0

@Eric: SSIS 2008 ne me permet pas de changer le nom. –

+0

@Tapori: Vous avez raison, je pensais à la source OLEDB. Mise à jour pour refléter la tâche de commande OLEDB. – Eric

+0

@Eric: Si vous utilisez une procédure stockée au lieu d'une commande SQL, SSIS reconnaît les paramètres et les place par nom au lieu de PARAM_0, 1, etc. Je vais essayer ce que vous avez suggéré tout de suite. –