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 :

BULK INSERT : Droits nécessaires pour l'utilisation


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut BULK INSERT : Droits nécessaires pour l'utilisation
    Suite à mon précédent message j'ai fait quelques tests avec MS-SQL mais je me heurte à un problème.

    Contexte :
    Depuis mon soft, je voudrais créer une table temporaire à partir de résultats de recherches et d'autres critères/filtres.
    J'utilise pour l'instant une série de INSERT INTO ... VALUES, mais c'est très gourmand en temps dès qu'il y a beaucoup d'enr. à ajouter (plusieurs milliers).

    Essais :
    Je pensais créer un fichier .TXT (beaucoup + rapide) et ensuite utiliser BULK INSERT pour insérer tous les enr. dans ma table temporaire.
    Mais j'ai fait quelques tests et il semblerait qu'il faille disposer de certains droits :
    • - L'utilisateur de mon soft doit avoir le rôle Bulk Insert Administrators sur le serveur.
      - Le service SQL qui lance le Serveur SQL doit avoir les droits d'accès sur le répertoire réseau où je crée mon fichier .TXT.
    Ces deux contraintes me paraissent insurmontables pour pouvoir mettre en place cette solution chez tous mes clients.

    Y a-t-il quelque chose qui m'échappe ou existe-t-il une autre/meilleure solution ?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    Bon, je vais aller tenter ma chance sur
    http://groups.google.fr/group/micros...c.fr.sqlserver
    8)

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 784
    Points
    52 784
    Billets dans le blog
    5
    Par défaut
    Le plus simple est de passer par un FTP sécurisé le fichier.

    mais pourquoi as tu beaucoup d'insert ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par SQLpro
    Le plus simple est de passer par un FTP sécurisé le fichier.
    Heu, je vois pas trop de quoi il s'agit

    Citation Envoyé par SQLpro
    mais pourquoi as tu beaucoup d'insert ?
    L'utilisateur dans mon progiciel peut faire plusieurs recherches sur les données et ensuite assembler toutes ces recherches selon ses critères (ET, OU, SAUF, ...).
    En fonction de sa demande d'assemblage, je crée un fichier temporaire qui permet de passer à l'étape suivante où l'utilisateur peut modifier/imprimer/... les données qu'il a choisies.
    Dans mon fichier temporaire, il n'y a qu'une colonne : l'ID unique de la table de départ.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    Bon, juste pour résumer ce que j'ai utilisé.

    Grâce à des liens forts intéressants :

    j'ai mis en place une des méthodes décrites dans ce dernier lien :
    Utilisation d'une table de nombres pour créer une table en ligne (online table) en fonction de la liste de mes valeurs à insérer, ensuite je fais une jointure et le tour est joué.
    Les performances sont bien meilleures.


    (voir aussi dans microsoft.public.fr.sqlserver :
    BULK INSERT : Droits nécessaires pour l 'utilisation )

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/01/2009, 23h46
  2. Droits nécessaires pour SHOW TABLE STATUS
    Par max-mag dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 30/10/2007, 12h03
  3. droits nécessaires pour faire un LOAD DATA INFILE
    Par Peanut dans le forum Administration
    Réponses: 11
    Dernier message: 14/06/2007, 17h03
  4. Réponses: 2
    Dernier message: 09/05/2007, 11h39
  5. Comment préciser nom de la colonne pour un Bulk Insert
    Par jeff37 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/06/2004, 17h05

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