Passer des listes de paramètres table aux procédures stockées SQL
Le scénario de remplissage d'une table de base de données avec plusieurs éléments associés à un enregistrement spécifique est un défi courant dans la manipulation des données. Alors que les approches traditionnelles impliquent la transmission itérative de valeurs de paramètres ou l'utilisation de manipulations de chaînes, une solution plus efficace est disponible.
Solution : Paramètres table dans SQL Server 2008
SQL Server 2008 a introduit les paramètres table, qui permettent de transmettre une collection de données structurées en tant que paramètre à une procédure stockée. Cela élimine le besoin d'une manipulation complexe de chaînes ou d'une gestion itérative de paramètres.
Dans le code fourni, la procédure stockée « AddItemsToReport » peut être mise à jour pour accepter un paramètre table :
ALTER PROCEDURE AddItemsToReport ( @ReportId int, @Items AS ItemList -- User-defined table type ) AS BEGIN INSERT INTO ReportItem (ReportId, ItemId) SELECT @ReportId, Id FROM @Items END
Type de table personnalisé pour la liste d'éléments
Pour créer un type de table personnalisé pour la liste d'éléments, exécutez le SQL suivant déclaration :
CREATE TYPE ItemList AS TABLE ( Id int )
Passer le paramètre table à partir de C#
Dans votre code C#, créez une instance du type de table personnalisé :
var itemList = new ItemList(); itemList.Rows.Add(1); itemList.Rows.Add(2); itemList.Rows.Add(3);
Ensuite, transmettez le paramètre table au fichier stocké. procédure :
dbCommand.AddInParameter(dbCommand, "Items", DbType.Object, itemList);
Avantages des paramètres table
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!