"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment les paramètres à valeur de la table peuvent-ils améliorer les performances de la procédure stockée SQL et la simplicité du code?

Comment les paramètres à valeur de la table peuvent-ils améliorer les performances de la procédure stockée SQL et la simplicité du code?

Publié le 2025-02-26
Parcourir:858

How Can Table-Valued Parameters Improve SQL Stored Procedure Performance and Code Simplicity?

En passant des listes de paramètres à valeur de table dans les 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 commun dans la manipulation des données. Alors que les approches traditionnelles impliquent de passer itérativement les valeurs de paramètres ou d'utiliser la manipulation de chaîne, une solution plus efficace est disponible. 2008 a introduit des paramètres à valeur de table, qui permettent de passer une collecte de données structurées en tant que paramètre à une procédure stockée. Cela élimine le besoin d'une manipulation de chaîne complexe ou d'une manipulation de paramètres itérative. ( @Reportid int, @Items en tant que liste d'élément - Type de table défini par l'utilisateur ) COMME COMMENCER Insérer dans ReportItem (reportId, itemid) Sélectionnez @ReportId, Identifiant De @items End

Type de table personnalisé pour la liste des éléments

Pour créer un type de table personnalisé pour la liste des éléments, exécutez l'instruction SQL suivante:

Créer un type Liste d'articles comme table ( Id int )

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
Passage paramètre de la table de table 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);

CREATE TYPE ItemList AS TABLE
(
  Id int
)

dbcommand.addinParameter (dbcommand, "items", dbtype.object, itemList) (dbcommand, "items", dbtype.object, itemlist) ;

avantages de la table Paramètres

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
Amélioration des performances en évitant plusieurs aller-retour dans la base de données.

Code simplifié en éliminant le besoin de manipulation de chaîne ou d'itération. en tapant fortement les données d'entrée.
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
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3