Maison > base de données > tutoriel mysql > Comment puis-je transmettre efficacement un tableau de paramètres à une procédure stockée SQL Server ?

Comment puis-je transmettre efficacement un tableau de paramètres à une procédure stockée SQL Server ?

Susan Sarandon
Libérer: 2025-01-10 17:27:40
original
591 Les gens l'ont consulté

How Can I Pass an Array of Parameters to a SQL Server Stored Procedure Efficiently?

Utilisez des paramètres table (TVP) pour transmettre efficacement des tableaux de paramètres aux procédures stockées

La transmission d'un tableau de paramètres est une tâche très courante lors de l'utilisation de procédures stockées. Cet article explique comment transmettre un tableau d'identifiants (ID) à une procédure stockée pour effectuer une opération spécifique.

Description du problème

Nous devons transmettre un tableau d'ID à une procédure stockée qui supprimera toutes les lignes du tableau à l'exception de celles qui correspondent aux ID du tableau.

Solution utilisant des paramètres table

Dans SQL Server 2008 et versions ultérieures, les paramètres table (TVP) constituent un moyen efficace de transmettre des tableaux aux procédures stockées. Voici comment implémenter cela à l'aide de TVP :

1. Créer TVP

Créez un TVP pour représenter le tableau d'ID :

<code class="language-sql">CREATE TYPE T1Ids AS Table (
    t1Id INT
);</code>
Copier après la connexion

2. Créer une procédure stockée

Créez une procédure stockée à l'aide de TVP :

<code class="language-sql">CREATE PROCEDURE dbo.FindMatchingRowsInTable1( @Table1Ids AS T1Ids READONLY )
AS
BEGIN
    -- 您的存储过程逻辑在此处
END</code>
Copier après la connexion

3. Préparer les données TVP

Dans votre application, préparez les données TVP dans un DataTable :

<code class="language-csharp">DataTable t1Ids = new DataTable();
t1Ids.Columns.Add("t1Id", typeof(int));
foreach (int id in listOfIdsToFind)
{
    t1Ids.Rows.Add(id);
}</code>
Copier après la connexion

4. Passer TVP à la procédure stockée

Lors de l'appel de la procédure stockée, passez TVP en paramètre :

<code class="language-csharp">SqlParameter sqlParameter = new SqlParameter("Table1Ids", t1Ids);
findMatchingRowsInTable1.Parameters.Add(sqlParameter);</code>
Copier après la connexion

5. Exécuter la procédure stockée

Exécutez la procédure stockée et traitez les résultats.

Avantages de l'utilisation de TVP

  • Passage de paramètres de type sécurisé
  • Performances améliorées par rapport à la sérialisation et à la désérialisation des données
  • Syntaxe lisible et facile à utiliser

Cette approche simplifie la tâche d'exécution d'opérations complexes sur un ensemble de données en vous permettant de transmettre facilement un tableau de paramètres à une procédure stockée.

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