Eseguire stored procedure in SQL Server usando l'adapter SQL
Le stored procedure Transact-SQL e CLR in SQL Server vengono visualizzate come operazioni nell'adapter Microsoft BizTalk per SQL Server nel nodo Procedure durante l'uso del componente aggiuntivo del servizio adapter o il plug-in Add Adapter Service Reference Plug-in. I nomi di operazione esposti dall'adapter SQL sono uguali al nome della stored procedure in SQL Server. Tutti i parametri della stored procedure vengono esposti nell'operazione corrispondente. Il parametro OUT contiene il valore restituito della stored procedure. Il set di risultati della stored procedure è una matrice di DataSet. Per altre informazioni su DataSet, vedere https://go.microsoft.com/fwlink/?LinkId=196853. Le informazioni sullo schema dell'oggetto di destinazione vengono ottenute come parte del messaggio di risposta in fase di esecuzione.
Tuttavia, se si desidera ottenere le informazioni sullo schema dell'oggetto di destinazione in fase di progettazione, è necessario generare schemi per le procedure nel nodo Procedure fortemente tipizzata nel componente aggiuntivo Del servizio adapter o nel plug-in Add Adapter Service Reference Plug-in. Si noti che le stesse stored procedure vengono visualizzate sotto le procedure e il nodo Procedure fortemente tipizzata . Il valore restituito della stored procedure è fortemente tipizzato e non solo una matrice di DataSet. Poiché le informazioni sullo schema sono disponibili in fase di progettazione, è possibile usarla per eseguire il mapping dello schema della stored procedure a un altro schema per un'operazione diversa. Ad esempio, è possibile eseguire il mapping dello schema generato per una routine fortemente tipizzata allo schema generato per l'operazione Di inserimento in una tabella di database.
Nota
Non sarà possibile visualizzare le informazioni sullo schema in fase di progettazione per una stored procedure fortemente tipizzata se:
- Si usa un cursore, ovvero un valore restituito di un'altra stored procedure, come parametro di input per la stored procedure fortemente tipizzata.
- Si tratta di una stored procedure CLR che esegue alcune operazioni in una tabella.
Supporto per stored procedure con clausola FOR XML
L'adapter SQL consente inoltre di eseguire stored procedure con un'istruzione SELECT con una clausola FOR XML. Una clausola FOR XML viene usata in un'istruzione SELECT per restituire i risultati come XML anziché un set di righe. Per altre informazioni sulla clausola FOR XML, vedere https://go.microsoft.com/fwlink/?LinkId=131402.
Nota
L'adapter SQL "nativo" disponibile con BizTalk Server supporta solo le stored procedure che restituiscono XML, ovvero la clausola FOR XML nell'istruzione SELECT. Con il supporto per le stored procedure con la clausola FOR XML, è possibile eseguire queste stored procedure usando l'adapter SQL basato su WCF senza apportare modifiche alla definizione della stored procedure.
Supporto per stored procedure con tabelle temporanee
L'adapter SQL consente di generare metadati per stored procedure che contengono tabelle temporanee nelle relative definizioni. Tuttavia, per tali stored procedure è necessario generare metadati selezionando le stored procedure solo dal nodo Procedure , mentre si usa il plug-in Add Adapter Service Reference o Consume Adapter Service Add-in. L'adapter non supporta la generazione di metadati per tali stored procedure dal nodo Procedure fortemente tipizzata .
Supporto per set di risultati contenenti colonne senza nomi o con gli stessi nomi
Nella tabella seguente viene elencato il modo in cui l'adapter SQL gestisce le colonne senza nomi e gli stessi nomi nei set di risultati per stored procedure e stored procedure fortemente tipizzata.
Il set di risultati contiene... | Stored Procedure | stored procedure Strongly-Typed |
---|---|---|
Colonne senza nomi | L'adapter SQL genera un nome per la colonna nel modo seguente: viene generato un ID univoco (GUID) per la colonna senza "-" (trattino) e quindi la stringa GUID viene preceduta da "C" perché il GUID generato potrebbe iniziare con una cifra ma un nome di tag XML non può. | L'adapter SQL genera il nome seguente per la colonna: "UnNamedColumn[column_index]", dove column_index inizia da '0'. |
Colonne con gli stessi nomi | I nomi delle colonne diverse dal primo vengono aggiunti con "" (sottolineatura) seguiti da un GUID casuale senza "-" (trattino). Ad esempio: "\[GUID]". | L'adapter SQL non supporta colonne con gli stessi nomi nei set di risultati e genera un'eccezione. Importante: È necessario assicurarsi che i nomi di colonna in un set di risultati abbiano nomi univoci. |
Nota
In generale, è consigliabile che tutte le colonne di un set di risultati per stored procedure e stored procedure fortemente tipizzata siano denominate e abbiano nomi univoci.
Per altre informazioni:
Come eseguire stored procedure, vedere Eseguire stored procedure in SQL Server usando BizTalk Server.
Schemi di messaggio per le stored procedure, vedere Schemi di messaggi per procedure e funzioni.