Maison > base de données > tutoriel mysql > Comment les paramètres table peuvent-ils améliorer l'efficacité lors de la transmission de plusieurs éléments aux procédures stockées SQL ?

Comment les paramètres table peuvent-ils améliorer l'efficacité lors de la transmission de plusieurs éléments aux procédures stockées SQL ?

Barbara Streisand
Libérer: 2024-12-30 04:48:39
original
242 Les gens l'ont consulté

How Can Table-Valued Parameters Improve Efficiency When Passing Multiple Items to SQL Stored Procedures?

Apprivoiser les procédures stockées avec des paramètres table

Problème :
Le transfert efficace de plusieurs éléments vers un seul enregistrement de base de données reste un défi persistant . Par exemple, l'attribution de plusieurs éléments à un rapport nécessite la mise à jour de la table ReportItems avec plusieurs enregistrements. Les approches conventionnelles impliquent un code complexe et une fonction auxiliaire pour traiter la liste d'éléments sous forme de chaîne.

Dévoilement d'une meilleure solution

Avec l'avènement de SQL Server 2008, les « paramètres table » introduisent un solution révolutionnaire à cette énigme.

La magie de TVP :
Les paramètres à valeur table vous permettent de transmettre une structure de type table en tant que paramètre à une procédure stockée. Dans notre cas, nous pouvons définir un TVP pour accepter un tableau d'ID d'articles entiers.

Code révisé :
Le code révisé devient beaucoup plus concis :

public void AddItemsToReport(string connStr, int Id, List<int> itemList)
{
    Database db = DatabaseFactory.CreateDatabase(connStr);

    string sqlCommand = "AddItemsToReport"
    DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);

    // Convert the list to a DataTable (lightweight)
    DataTable table = itemList.ToDataTable();

    // Create the TVP parameter
    db.AddParameter(dbCommand, "Items", table);

    // Execute the stored procedure
    db.ExecuteNonQuery(dbCommand);
}
Copier après la connexion

Procédure stockée améliorée :
La procédure stockée simplifie plus loin :

INSERT INTO ReportItem (ReportId,ItemId)
SELECT  @ReportId,
          Id
FROM     @Items
Copier après la connexion

Conclusion :
Les paramètres table offrent un mécanisme élégant et efficace pour transférer plusieurs éléments vers des procédures stockées SQL. En éliminant le besoin de manipulations de chaînes complexes et de fonctions auxiliaires, les TVP rationalisent le processus de développement et améliorent la lisibilité du code.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal