Inserire, aggiornare, eliminare e selezionare operazioni su tabelle e viste con l'adattatore SQL
L'adapter Microsoft BizTalk per SQL Serversurfaces un set di operazioni standard in ogni tabella e visualizzazione nel database SQL Server. Usando queste operazioni, è possibile eseguire semplici istruzioni INSERT, UPDATE, SELECT e DELETE qualificate da una clausola WHERE nella tabella o nella vista di destinazione. Queste operazioni sono chiamate anche operazioni DML (Data Manipulation Language).
Nella tabella seguente vengono illustrate le operazioni DML supportate dall'adapter SQL:
Operazione | Descrizione |
---|---|
Insert | Esegue un'operazione di inserimento nella tabella o nella vista di destinazione. - L'operazione Inserisci accetta una matrice di record come input. Ogni record è fortemente tipizzato nella tabella di destinazione e esegue il mapping alla riga inserita nella tabella. - È possibile inserire valori nelle colonne identity, a condizione che il valore della proprietà di associazione AllowIdentityInsert sia impostato su TRUE. Per altre informazioni sulla proprietà di associazione AllowIdentityInsert, vedere Informazioni sulle proprietà di associazione dell'adapter BizTalk per SQL Server. - Il valore restituito dell'operazione Inserisci è una matrice di tipo di dati Long. Questa matrice archivia i valori di identità delle righe inserite, se presenti. Se non è presente alcuna colonna identity in una tabella, il valore restituito è NULL. Alcuni valori nel messaggio di operazione Inserisci vengono trattati nel modo seguente dall'adattatore SQL: - I valori specificati per le colonne calcolate e le colonne timestamp vengono ignorati. - Se il nodo per una colonna identity è Null, viene ignorato. Per tutti gli altri valori nel messaggio Inserisci operazione: - Se viene specificato un valore per una colonna, tale valore viene usato nell'istruzione INSERT. - Se il nodo per una determinata colonna è Null, NULL viene usato nell'istruzione INSERT. Nota: Se per un record specifico, non sono presenti valori che possono essere usati nell'istruzione INSERT , ovvero nessun valore specificato per alcuna colonna o tutti i valori di colonna sono stati ignorati), l'adapter esegue l'istruzione SQL seguente: insert into <table_name> default values |
Selezione | Esegue un'istruzione SELECT nella tabella o nella visualizzazione di destinazione in base a una matrice di record (colonne) e a una stringa di query che specifica una clausola WHERE. - È necessario specificare un valore per l'elenco delle colonne nell'istruzione SELECT. Se tutte le colonne devono essere recuperate in una tabella o in una vista, * deve essere specificato nell'istruzione SELECT. Se è necessario recuperare colonne specifiche, i nomi di colonna devono essere separati da virgole e specificati nello stesso ordine definito nella tabella o nella vista. - La clausola WHERE deve essere inclusa nell'istruzione SELECT. Tuttavia, se non si vuole specificare un valore nella clausola WHERE, è possibile eliminare l'elemento Query o lasciarlo vuoto.- L'operazione Select consente anche di eseguire un'operazione di aggiornamento. In questo caso, l'istruzione UPDATE viene inserita all'interno Query dell'elemento dell'istruzione SELECT.Il valore restituito dell'operazione Select è un set di risultati fortemente tipizzato che contiene le colonne e le righe specificate dalla tabella o dalla vista di destinazione. |
Aggiornamento | Esegue un'operazione di aggiornamento nella tabella o nella visualizzazione di destinazione. - L'operazione di aggiornamento accetta una matrice di coppie di record come input. Ogni coppia di record è una raccolta di due record e ogni record viene fortemente tipizzato nella tabella di destinazione. - Il primo record corrisponde ai nuovi valori che devono essere aggiornati, ovvero corrisponde alla clausola SET dell'istruzione UPDATE. - Il secondo record corrisponde ai valori precedenti delle righe, ovvero corrisponde alla clausola WHERE dell'istruzione UPDATE. Nota: Se, per una determinata coppia di record, non sono presenti valori che possono essere usati nella clausola SET, non viene eseguita alcuna istruzione UPDATE per tale coppia di record. - È possibile aggiornare i valori nelle colonne identity, a condizione che il valore della proprietà di associazione AllowIdentityInsert sia impostato su TRUE. Per altre informazioni sulla proprietà di associazione AllowIdentityInsert, vedere Informazioni sulle proprietà di associazione dell'adapter BizTalk per SQL Server. - Il valore restituito dell'operazione Di aggiornamento è di tipo di dati Int32 e indica il numero di righe aggiornate. Alcuni valori nel messaggio Dell'operazione di aggiornamento vengono trattati nel modo seguente dall'adapter SQL: - I valori specificati per le colonne calcolate e le colonne timestamp nella clausola SET del messaggio vengono ignorati. - Se un tipo definito dall'utente (UDT) non è ordinato per byte, il valore specificato per la colonna UDT nella clausola WHERE viene ignorato. - Se il nodo per una colonna identity è null nella clausola SET del messaggio, viene ignorato. - Se il nodo per una colonna identity o timestamp è null nella clausola WHERE del messaggio, viene ignorato. - Se il nodo per un'immagine, una colonna XML, Testo o Ntext non è null nella clausola WHERE del messaggio, i valori specificati per essi vengono ignorati perché questi valori non possono essere confrontati. Per tutti gli altri valori nel messaggio Dell'operazione di aggiornamento: - Se viene specificato un valore per una colonna nella clausola SET dell'istruzione UPDATE, il valore viene usato nella clausola SET dell'istruzione ( set <column_name> = <value> ).- Se il nodo per una determinata colonna è Null nella clausola SET, VIENE usato NULL nell'istruzione UPDATE ( set <column_name> = null ).- Se viene specificato un valore per una colonna nella clausola WHERE dell'istruzione UPDATE, il valore viene usato nella clausola WHERE dell'istruzione ( where <column_name> = <value> ).- Se il nodo per una determinata colonna è Null nella clausola WHERE dell'istruzione UPDATE, NULL viene usato nell'istruzione UPDATE ( where <column_name> is null ). |
Delete | Esegue un'operazione Delete nella tabella o nella visualizzazione di destinazione in base a una matrice fortemente tipizzata di record (elenco di nomi di colonna) della tabella di destinazione e una stringa di filtro che specifica una clausola WHERE. Il valore restituito dell'operazione Delete è di tipo di dati Int32 e indica il numero di righe eliminate. Alcuni valori nel messaggio Elimina operazione vengono trattati nel modo seguente dall'adattatore SQL: - Se il nodo per un'immagine, una colonna XML, Testo o Ntext non è null nella clausola WHERE del messaggio, i valori specificati per essi vengono ignorati perché questi valori non possono essere confrontati. - Se il nodo per una colonna identity o timestamp è null, viene ignorato. - Se un byte UDT non è ordinato, il valore specificato per la colonna UDT nella clausola WHERE viene ignorato. Per tutti gli altri valori nel messaggio Elimina operazione: - Se viene specificato un valore per una colonna, il valore viene usato nella clausola WHERE dell'istruzione DELETE ( where <column_name> = <value> ).- Se il nodo per una determinata colonna è Null, NULL viene usato nell'istruzione DELETE ( where <column_name> is null ). Nota: Se, per un record specifico, non sono presenti valori che possono essere usati nell'istruzione DELETE, ovvero nessun valore specificato per alcuna colonna o se tutti i valori di colonna presenti sono stati ignorati), l'adapter non esegue alcuna istruzione DELETE. |
Per altre informazioni:
Eseguire queste operazioni usando BizTalk Server, vedere Inserire, aggiornare, eliminare o selezionare operazioni usando BizTalk Server con l'adapter SQL.
Strutture di messaggi e azione SOAP per l'esecuzione di operazioni DML, vedere Schemi dei messaggi per Inserimento, Aggiornamento, Eliminazione e Selezione operazioni su tabelle e visualizzazioni.