Schémas de message pour les opérations d’insertion, de mise à jour, de suppression et de sélection sur des tables et des vues
L’adaptateur Microsoft BizTalk pour SQL Server surfaces les opérations d’insertion, de mise à jour, de suppression et de sélection pour chaque table et vue dans la base de données SQL Server. Ces opérations exécutent l’instruction SQL appropriée qualifiée par une clause WHERE. L’adaptateur SQL utilise des enregistrements fortement typés et des jeux d’enregistrements dans ces opérations.
Structure des messages pour les opérations de table
Le tableau suivant montre la structure des messages XML pour les opérations de table de base exposées par l’adaptateur SQL sur SQL Server tables de base de données. La table cible d’une opération est spécifiée dans l’action de message et apparaît également dans l’espace de noms cible.
Opération | Message XML | Description | SQL exécuté par l’adaptateur |
---|---|---|---|
Insérer | <Insert xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Rows> <[TABLE_NAME]> <[FIELD1_NAME]>value1</[FIELD1_NAME]> <[FIELD2_NAME]>value2</[FIELD2_NAME]> … </[TABLE_NAME]> </Rows> </Insert> |
Insère le jeu d’enregistrements fourni de données fortement typées dans la table cible. | INSERT INTO TABLE_NAME (FIELD1_NAME, FIELD2_NAME, …) VALUES (value1, value2, …); |
Insérer une réponse | <InsertResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <InsertResult> <long>[Value]</long> </InsertResult> </InsertResponse> |
Le message Insérer une réponse contient un tableau de type de données Long. Le tableau stocke les valeurs d’identité des lignes insérées, le cas échéant. S’il n’y a pas de colonne d’identité dans une table, la valeur de retour est NULL. | -- |
Sélectionnez | Sélection de tous les enregistrements :<Select xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Columns>*</COLUMNS> <Query></Query> </Select> Sélection de colonnes spécifiques dans un jeu d’enregistrements : <Select xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Columns>[COLUMN_list]</COLUMNS> <Query>where [WHERE_clause]</Query> </Select> Mise à jour des enregistrements dans le cadre de l’opération de sélection : <Select xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Columns>[COLUMN_list]</Columns> <Query>where [WHERE_clause];UPDATE [TABLE_NAME] SET [FIELD1_NAME] = [value1] where [WHERE_clause]</Query> </Select> |
Une requête SELECT est effectuée sur la table cible à l’aide de la clause WHERE spécifiée dans l’élément . Le jeu de résultats contient les colonnes de la liste séparée par des virgules des noms de colonnes spécifiés dans l’élément <Columns> . Il est obligatoire de fournir une valeur dans l’élément <Columns> . Si toutes les colonnes doivent être récupérées dans une table ou une vue, * doit être spécifié dans l’élément <Columns> . Si des colonnes spécifiques doivent être récupérées, les noms de colonnes doivent être séparés par des virgules et spécifiés dans le même ordre qu’ils sont définis dans la table ou la vue. Il est obligatoire d’inclure la clause WHERE dans l’instruction SELECT. Si vous ne souhaitez pas spécifier de clause WHERE, vous pouvez supprimer l’élément <Query> ou le laisser vide. Vous pouvez mettre à jour des enregistrements à l’aide de l’opération Sélectionner. Une instruction UPDATE est placée dans l’élément <Query> de la requête XML SELECT, séparée de la clause WHERE par un point-virgule. Notez que l’instruction UPDATE ne fonctionne pas sur le jeu de résultats de l’instruction SELECT. |
Sélection de tous les enregistrements :SELECT * FROM [TABLE_NAME] WHERE [WHERE_clause]; Sélection de colonnes spécifiques dans un jeu d’enregistrements : SELECT [COLUMN_list] FROM [TABLE_NAME] WHERE [WHERE_clause]; Mise à jour des enregistrements dans le cadre de l’opération de sélection : SELECT [COLUMN_list] FROM [TABLE_NAME] WHERE [WHERE_clause]; UPDATE [TABLE_NAME] SET [FIELD1_NAME] = value1 [WHERE_clause]; |
Sélectionner la réponse | <SelectResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <SelectResult> <[TABLE_NAME]> <[FIELD1_NAME]>[value1]</[FIELD1_NAME]> <[FIELD2_NAME]>[value2]</[FIELD2_NAME]> … </[TABLE_NAME]> </SelectResult> <SelectResponse> |
Jeu de résultats fortement typé généré par la requête SELECT. | -- |
Update | <SelectResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <SelectResult> <[TABLE_NAME]> <[FIELD1_NAME]>[value1]</[FIELD1_NAME]> <[FIELD2_NAME]>[value2]</[FIELD2_NAME]> … </[TABLE_NAME]> </SelectResult> </SelectResponse> <Update xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Rows> <RowPair> <After> <[FIELD1_NAME]>[value1]</[FIELD1_NAME]> <[FIELD2_NAME]>[value2]</[FIELD2_NAME]> … </After> <Before> <[FIELD1_NAME]>[value3]</[FIELD1_NAME]> <[FIELD2_NAME]>[value4]</[FIELD2_NAME]> … </Before> </RowPair> </Rows> </Update> |
Prenez un tableau de paires d’enregistrements comme entrée. Chaque paire d’enregistrements est une collection de deux enregistrements fortement typés : Le premier enregistrement (dans l’élément <After> ) correspond aux nouvelles valeurs qui doivent être mises à jour.Le deuxième enregistrement (dans ) <Before> correspond aux anciennes valeurs des lignes. |
UPDATE [TABLE_NAME] SET [FIELD1_NAME] = value1, [FIELD2_NAME] = value2, … WHERE [FIELD1_NAME] = value3, [FIELD2_NAME] = value4, …; |
Mettre à jour la réponse | <UpdateResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <UpdateResult>[rows updated]</UpdateResult> </UpdateResponse> |
Le nombre de lignes mises à jour est retourné dans l’élément UpdateResult . | -- |
Supprimer | <Delete xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <Rows> <[TABLE_NAME]> <[FIELD1_NAME]>value1</[FIELD1_NAME]> <[FIELD2_NAME]>value2</[FIELD2_NAME]> … </[TABLE_NAME]> </Rows> </Delete> |
-- | DELETE FROM [TABLE_NAME] WHERE [FIELD1_NAME] = value1, [FIELD2_NAME] = value2, …; |
Supprimer la réponse | <DeleteResponse xmlns="[VERSION]/TableOp/[SCHEMA]/[TABLE_NAME]"> <DeleteResult>[rows deleted]</DeleteResult> </DeleteResponse> |
Le nombre de lignes supprimées est retourné dans l’élément DeleteResult . | -- |
[VERSION] = Chaîne de version du message ; par exemple, http://schemas.microsoft.com/Sql/2008/05
.
[SCHEMA] = Collection d’artefacts SQL Server ; par exemple, dbo.
[TABLE_NAME] = Nom de la table ; par exemple, Employee.
[FIELD1_NAME] = Nom du champ de table ; par exemple, NAME.
[COLUMN_list] = liste de colonnes séparées par des virgules ; par exemple, Name, Age, Designation.
[SELECT_query] = instruction SQL SELECT spécifiée dans l’élément QUERY d’une opération d’insertion en bloc ; par exemple, « SELECT * from MyTable »
[WHERE_clause] = WHERE_clause pour l’instruction SELECT utilisée pour l’opération ; par exemple, ID > 10.
Important
La structure des messages pour les opérations de table de base sur les vues est identique à celle des tables, sauf que la vue remplace la table : Insert xmlns="[VERSION]/ViewOp/[SCHEMA]/[VIEW_NAME]"
.
Actions de message pour les opérations de table de base
Le tableau suivant présente les actions de message utilisées par l’adaptateur SQL pour les opérations de table de base sur les tables. L’adaptateur SQL utilise le nom de table spécifié dans l’action de message pour déterminer la table cible de l’opération.
Opération | Message Action | Exemple |
---|---|---|
Insérer | TableOp/Insert/[SCHEMA]/[TABLE_NAME] | TableOp/Insert/dbo/Employee |
Insérer une réponse | TableOp/Insert/[SCHEMA]/[TABLE_NAME]/response | TableOp/Insert/dbo/Employee/response |
Sélectionnez | TableOp/Select/[SCHEMA]/[TABLE_NAME] | TableOp/Select/dbo/Employee |
Sélectionner la réponse | TableOp/Select/[SCHEMA]/[TABLE_NAME]/response | TableOp/Select/dbo/Employee/response |
Update | TableOp/Update/[SCHEMA]/[TABLE_NAME] | TableOp/Update/dbo/Employee |
Mettre à jour la réponse | TableOp/Update/[SCHEMA]/[TABLE_NAME]/response | TableOp/Update/dbo/Employee/response |
Supprimer | TableOp/Delete/[SCHEMA]/[TABLE_NAME] | TableOp/Delete/dbo/Employee |
Supprimer la réponse | TableOp/Delete/[SCHEMA]/[TABLE_NAME]/response | TableOp/Delete/dbo/Employee/response |
[SCHEMA] = Collection d’artefacts SQL Server ; par exemple, dbo.
[TABLE_NAME] = Nom de la table ; par exemple, Employee.
Important
L’action de message d’une opération sur une vue est identique à celle d’une table, sauf que « ViewOp » remplace « TableOp » ; par exemple, ViewOp``/Insert/dbo/Employee_View
.
Voir aussi
Messages et schémas de message pour l’adaptateur BizTalk pour SQL Server