2015-06-12 16 views
8

Sto tentando di utilizzare un "Expression Task" in SSIS per semplicemente inizializzare/impostare due variabili. Questo apparentemente semplice compito mi ha spinto noci, perché non so come separare le dichiarazioni:Espressioni SSIS che impostano due variabili

@[User::testVariable]="1" 
@[User::testVar2]=3 

che dà un errore di analisi, e ho letto attraverso un bel po 'di documentazione senza alcun risultato. Come vengono dichiarazioni separate e spero di non dover utilizzare più di un compito espressione, perché ho un sacco di variabili ... Grazie

+1

Se è necessario impostare molte variabili, utilizzare un'attività di script. –

+1

Grazie per il commento: ma non sono la stessa cosa. Per un'attività Script non è possibile parametrizzare l'attività, quindi è statica. Sto assegnando le mie variabili ai parametri e quindi devo essere in grado di regolarle a livello di SSIS. – LearnByReading

+0

Non sai cosa intendi per "parametrizzare l'attività" ... vuoi dire che non puoi fare quello che ti dicono come fare in questa risposta al forum ?: https://social.msdn.microsoft.com/forums/sqlserver/it-US/8fd1335a-783f-455e-9853-f366f0957b1b/how-to-use-parameters-in-a-script-task –

risposta

15

è possibile impostare solo 1 variabile alla volta:

Per modificare il valore di una variabile durante il runtime è necessaria un'espressione o un'attività Script. L'espressione non è molto flessibile e l'attività Script richiede . Conoscenza .Net. Ecco perché Microsoft ha introdotto l'Espressione in SSIS 2012. Consente di impostare il valore di una variabile durante il runtime. Il lato negativo è che non è disponibile per il 2008 e che è possibile impostare solo una variabile alla volta.

http://microsoft-ssis.blogspot.com/2013/07/custom-ssis-component-multiple.html

Si dovrà scaricare un personalizzata Multiple Expressions Task componente che viene fornito sul link o fare un Expression Task per ogni variabile.

+2

Non riesco a credere che ci sia voluto così tanto tempo per scegliere la migliore risposta - anche se mi ha aiutato e tanti altri. – LearnByReading

4

Qualcosa che ho iniziato a fare di recente, che può essere utile per le persone:

Invece di dover andare al fastidio di impostazione sia più operazioni espressione o un'attività Script, ho capito è spesso possibile utilizzare un'operazione Esegui SQL per portare a termine il lavoro. L'SQL necessario può variare leggermente in base al database a cui ci si connette, il mio esempio è basato su SQL Server.

Il mio esempio si basa sull'inizializzazione di variabili da parametri, ma questo può essere ottimizzato per diverse situazioni.

Fase 1

crea una query che accetta parametri in - questi sono i parametri o variabili necessari i valori da. Ovviamente si può usare questo per inizializzare una variabile su 0 o fare qualche aritmetica su un paio di parametri o variabili.

Utilizzare l'opzione Singola riga per l'opzione Set.

General Tab

Fase 2

Impostare la mappatura dei parametri, come al solito.

Parameter Mapping Tab

Fase 3

Configurare il set di risultati.

Result Set Tab


Credo che l'aspetto negativo di questo è che ci si collega a un database per farlo - ma se avete installato SSIS, allora avete un'istanza di SQL Server in tale server - così Non sono sicuro che sia un aspetto negativo.

Trovo questo molto meno di una seccatura che l'impostazione di una Script Task, ma YMMV.

+0

è divertente come lo hai proposto letteralmente il giorno dopo averlo appreso da un consulente! Attesto che questo metodo funziona, ma non sono sicuro se sia più o meno efficiente di altri metodi. Grazie mille per aver risposto – LearnByReading