IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Procédure stocké, un tableau de int en paramètre


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut Procédure stocké, un tableau de int en paramètre
    Dans une procédure stockée j'ai besoin d'envoyer un tableau de int en paramètre.

    Est-ce possible ?
    Comment faire ?

    Merci beaucoup

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Salut,

    deux solutions :
    - un grand varchar avec un délimiteur, que tu parses dans ta sp, par exemple à l'aide d'une fonction qui retourne une table.
    - une structure XML que tu envoies dans un grand varchar, ou un TEXT, et que tu convertis en table dans ta sp avec OPENXML.

    Un exemple de openxml que j'ai sous la main :
    Pour un XML de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Elements>
      <Element>
          <Key/>
          <Value/>
      </Element>
     </Elements>
    Code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	DECLARE @idoc int
    	DECLARE @tField TABLE (FieldName varchar(100), Value varchar(100))
     
    	EXEC master.dbo.sp_xml_preparedocument @idoc OUTPUT, @KeyValue
     
    	INSERT INTO @tField (FieldName, Value)
    	SELECT FieldName, Value
    	FROM OPENXML(@idoc, '/Elements/Element', 2) WITH (FieldName varchar(100) 'Key', Value varchar(100))
    ... ou sans passer par une variable table, directement dans un JOIN.

    En étant conscient que les performances du OPENXML peuvent poser problème sur un serveur très sollicité. A tester.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    C'est un serveur très sollicité donc je vais faire la première solution.

    Comment je fais pour le parser ?
    Quels sont les fonctions à utiliser dans sqlserver ?

    Merci beaucou pde ton aide.

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Tu as des exemples ici : http://www.aspfaq.com/show.asp?id=2248.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Procédure stockée avec un dataset passé comme paramètre
    Par DEV-10 dans le forum Développement
    Réponses: 3
    Dernier message: 17/10/2011, 08h22
  2. procédures stockées et tableau
    Par deborah95 dans le forum MySQL
    Réponses: 1
    Dernier message: 11/06/2009, 09h46
  3. Réponses: 2
    Dernier message: 03/12/2006, 12h37
  4. Procédure stockée : passage d'un tableau en paramètres
    Par thomas_strass dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/05/2006, 14h52
  5. Passer en paramétre un tableau dans une procédure stockée
    Par killysui dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/04/2006, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo