Identificatori (SSIS)

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Nelle espressioni gli identificatori sono colonne e variabili disponibili per l'operazione. Le espressioni possono utilizzare identificatori regolari e qualificati.

Identificatori regolari

Un identificatore regolare è un identificatore per cui non sono necessari ulteriori qualificatori. È un identificatore regolare ad esempio la colonna MiddleNamedella tabella Contacts del database AdventureWorks .

Per gli identificatori regolari sono previste le regole di denominazione seguenti:

  • Il primo carattere del nome deve essere una lettera, come definito dallo standard Unicode 2.0, o un carattere di sottolineatura (_).

  • I caratteri successivi possono includere lettere o numeri, come definito dallo standard Unicode 2.0, il carattere di sottolineatura (_) e i caratteri @, $ e #.

Importante

Gli identificatori regolari non possono contenere spazi e caratteri speciali diversi da quelli indicati. Se si desidera includere spazi e caratteri speciali, sarà necessario utilizzare un identificatore qualificato anziché un identificatore regolare.

Identificatori qualificati

Un identificatore qualificato è un identificatore delimitato da parentesi quadre. Può essere necessario un delimitatore perché il nome dell'identificatore include spazi o il primo carattere del nome non è una lettera né il carattere di sottolineatura (_). Se si usa il nome di colonna Middle Name in un'espressione, ad esempio, sarà necessario qualificarlo racchiudendolo tra parentesi quadre, in modo da ottenere [Middle Name].

Se il nome dell'identificatore include spazi o non è un nome di identificatore regolare valido, sarà necessario qualificarlo. Per qualificare gli identificatori l'analizzatore di espressioni utilizza le parentesi quadre aperta e chiusa ([]), Le parentesi sono posizionate nella prima e nell'ultima posizione della stringa. L'identificatore 5$> diventa ad esempio [5$>]. È possibile utilizzare parentesi quadre con nomi di colonne, variabili e funzioni.

Nelle espressioni compilate utilizzando le finestre di dialogo di Progettazione SSIS, gli identificatori regolari vengono automaticamente racchiusi tra parentesi quadre. Le parentesi quadre sono tuttavia necessarie solo se il nome include caratteri non validi. Il nome di colonna MiddleName , ad esempio, è valido anche senza parentesi quadre.

Nelle espressioni non è possibile fare riferimento a nomi di colonna contenenti parentesi quadre. Il nome di colonna Column[1] , ad esempio, non può essere usato in un'espressione. Per utilizzare la colonna in un'espressione, deve essere rinominata con un nome senza parentesi quadre.

identificatori di derivazione

Nelle espressioni è possibile utilizzare identificatori di derivazione per fare riferimento alle colonne. Gli identificatori di derivazione vengono assegnati automaticamente al momento della creazione del pacchetto. È possibile visualizzare l'identificatore di derivazione di una colonna nella scheda Proprietà colonna della finestra di dialogo Editor avanzato in SSIS Designer.

Per fare riferimento a una colonna tramite il relativo identificatore di derivazione, è necessario anteporre a quest'ultimo un simbolo di cancelletto (#) come prefisso. Se ad esempio una colonna ha identificatore di derivazione 147, per farvi riferimento sarà necessario specificare #147.

Se l'analisi sintattica di un'espressione ha esito positivo, il valutatore di espressioni sostituisce gli identificatori di lineage con i nomi delle colonne nella finestra di dialogo.

Nomi di colonna univoci

In uno stesso pacchetto possono essere utilizzati più componenti che espongono colonne con lo stesso nome. Per consentire l'analisi delle espressioni che utilizzano tali colonne, è necessario eliminare le ambiguità. L'analizzatore di espressioni supporta la notazione con punto per l'identificazione dell'origine della colonna. Due colonne con il nome Age possono ad esempio diventare FlatFileSource.Age e OLEDBSource.Age, per indicare che le rispettive origini sono FlatFileSource e OLEDBSource. Il parser considera il nome completo qualificato come un unico nome di colonna.

I nomi dei componenti di origine e di colonna vengono qualificati separatamente. Negli esempi seguenti viene illustrato il corretto utilizzo delle parentesi quadre nella notazione con punto:

  • Il nome del componente di origine contiene spazi.

    [MySo urce].Age  
    
  • Il primo carattere del nome della colonna non è valido.

    MySource.[#Age]  
    
  • Il nome del componente di origine e quello della colonna contengono caratteri non validi.

    [MySource?].[#Age]  
    

Importante

Se nella notazione con punto entrambi gli elementi sono racchiusi da una coppia di parentesi quadre, l'analizzatore di espressioni interpreta la coppia come un identificatore unico, non come combinazione origine-colonna.

Variabili nelle espressioni

Quando in un'espressione viene fatto riferimento a una variabile, è necessario anteporre il prefisso @ al nome della variabile. Per fare riferimento alla variabile Counter , ad esempio, è necessario specificare @Counter. Il carattere @ non fa parte del nome della variabile, ma consente all'analizzatore di espressioni di identificarla come tale. Se per compilare le espressioni si usano le finestre di dialogo disponibili in Progettazione SSIS, il carattere @ verrà aggiunto automaticamente al nome della variabile. Non è consentito includere spazi tra il carattere @ e il nome della variabile.

Per i nomi delle variabili valgono le stesse regole applicate agli altri identificatori regolari:

  • Il primo carattere del nome deve essere una lettera, come definito dallo standard Unicode 2.0, o un carattere di sottolineatura (_).

  • I caratteri successivi possono includere lettere o numeri, come definito dallo standard Unicode 2.0, il carattere di sottolineatura (_) e i caratteri @, $ e #.

I nomi di variabile contenenti caratteri diversi da quelli elencati devono essere racchiusi tra parentesi quadre. È ad esempio necessario racchiudere tra parentesi quadre i nomi di variabili che includono spazi. La parentesi quadra di apertura viene inserita dopo il carattere @. Per fare riferimento alla variabile My Name , ad esempio, è necessario specificare @[My Name]. Non è consentito includere spazi tra il nome della variabile e le parentesi quadre.

Nota

I nomi delle variabili di sistema e delle variabili definite dall'utente devono essere specificati rispettando la distinzione tra maiuscole e minuscole.

Nomi di variabile univoci

Integration Services supporta le variabili personalizzate e include un set di variabili di sistema. Per impostazione predefinita, le variabili personalizzate appartengono allo spazio dei nomi User mentre le variabili di sistema appartengono allo spazio dei nomi System . È possibile creare namespace aggiuntivi per le variabili personalizzate e modificare i nomi dei namespace in base alle esigenze dell'applicazione. Il generatore di espressioni elenca le variabili nell'ambito in tutti gli spazi dei nomi.

Tutte le variabili hanno un ambito e appartengono a uno spazio dei nomi. Una variabile ha ambito del pacchetto oppure l'ambito di un contenitore o di un'attività nel pacchetto. Il generatore di espressioni in Designer SSIS elenca solo le variabili nell'ambito. Per altre informazioni, vedere Variabili di Integration Services (SSIS) e Utilizzo di variabili nei pacchetti.

L'analizzatore di espressioni può valutare correttamente un'espressione solo se le variabili utilizzate hanno nomi univoci. Se un pacchetto utilizza più variabili con lo stesso nome, i relativi spazi dei nomi devono essere diversi. Integration Services fornisce un operatore di risoluzione dello spazio dei nomi, costituito da due caratteri di due punti (::), per qualificare una variabile con il relativo spazio dei nomi. Nell'espressione seguente, ad esempio, vengono usate due variabili con il nome Count, una appartenente allo spazio dei nomi User e l'altra allo spazio dei nomi MyNamespace .

@[User::Count] > @[MyNamespace::Count]  

Importante

Per consentire all'analizzatore di espressioni di riconoscere tali variabili, è necessario racchiudere tra parentesi quadre la combinazione costituita dallo spazio dei nomi e dal nome qualificato della variabile.

Se il valore della variabile Count dello spazio dei nomi User è 10, mentre il valore di Count in MyNamespace è 2, l'espressione restituirà true , perché l'analizzatore di espressioni le riconosce come due variabili diverse.

Se i nomi delle variabili non sono univoci, non verrà generato alcun errore, ma l'analizzatore di espressioni valuterà l'espressione utilizzando una sola istanza della variabile e restituirà un risultato non corretto. L'espressione seguente ha ad esempio lo scopo di confrontare i valori (10 e 2) di due variabili Count diverse, ma viene restituito false perché nell'analizzatore di espressioni viene usata due volte la stessa istanza della variabile Count .

@Count > @Count