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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2018
    Messages : 8
    Points : 5
    Points
    5

    Par défaut Exporter une requête sql dans un fichier (automatiquement)

    Bonjour,

    Je cherche actuellement à exporter une requête dans un fichier (le format importe peu). Il faut que ceci se fasse dans la requête, mon but n'est pas d'obtenir une photo à un instant t mais de retranscrire "en temps réel" les infos dans un fichier, je ne peux donc pas faire de clic droit.

    Je suis sur microsoft SQL Server Management Studio 17.

    J'ai essayé cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE xp_cmdShell 'echo Hello World! > C:\Users\hca\Desktop\fichier.txt'
    mais elle me renvoie "Access is denied", et je n'ai pas trouvé comment me le procurer.

    Quelqu'un connaîtrait-il un moyen pour que je me donne cet accès, où tout autre moyen de copier le résultat? Dans l'idéal le fichier devrait être capable de se générer s'il n'existe pas déjà, si c'est possible.

    Merci beaucoup pour votre aide et votre temps!

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    10 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 736
    Points : 27 223
    Points
    27 223
    Billets dans le blog
    23

    Par défaut

    Bonjour,

    Mauvais forum, ici il s'agit de Firebird/SQL aucun rapport donc avec MS SQLserver.
    Discussion déplacée de Firebird/SQL vers MS SQLserver, je laisse le soin au modérateur de ce forum de juger si c'est adapté
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2018
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Merci pour le changement de forum, je n'avais pas fais attention! ^^'

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    septembre 2016
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2016
    Messages : 576
    Points : 1 069
    Points
    1 069

    Par défaut

    Bonjour,

    Citation Envoyé par hugocarpyro Voir le message
    Je cherche actuellement à exporter une requête dans un fichier (le format importe peu).
    C'est une question fréquente et un petit tour sur internet m'a permis de trouver :
    https://www.sqlservercentral.com/art...to-a-text-file

    Pour votre script xp_cmdShell,
    La difficulté va être de déterminer sous quel "utilisateur windows" le script est lancé.

    Il serait étonnant que ce soit avec l'utilisateur hca.
    Est-ce que l'utilisateur hca a déjà ouvert une session sur le server SQL ?
    Rappel : le code SQL est exécuté par les serveur, pas par le client...

    Sur le server SQL de dev créer un dossier à la racine de C:\ et donnez les droits les plus laxes possibles.
    Exécutez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE xp_cmdShell 'echo SET > C:\...\fichier.txt
    Étudiez le contenu, puis supprimez le dossier (pas de trou béant de sécurité à demeure sur un server)

    Edit : le fait d'utiliser SQL Server Management Studio 17 ne dit rien sur la version de SQL server (si, que ce n'est pas SQL 2000 ou antérieur )
    Le savoir est une nourriture qui exige des efforts.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    juin 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2004
    Messages : 41
    Points : 51
    Points
    51

    Par défaut

    Utiliser le bcp est ce qu'il y a de plus performant.
    Sinon en activant les ole Automation tu peux générer des fichiers de tout type directement en SQL et c'est relativement simple et assez performant.
    Avec des connaissances en HTML/CSS, tu peux faire des trucs sympas.
    Un chat avec des moufles n'attrape pas de souris.

  6. #6
    Modérateur
    Avatar de elsuket
    Homme Profil pro
    Founder
    Inscrit en
    janvier 2005
    Messages
    5 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Founder
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2005
    Messages : 5 820
    Points : 12 313
    Points
    12 313

    Par défaut

    Bonjour,

    L'utilisation de xp_cmdshell est proscrite puisqu'elle requiert d'une part d'être activée au niveau de la configuration de l'instance (à l'aide de sp_configure), mais surtout parce qu'elle permet l'utilisation de commandes DOS (au demeurant allègrement remplacé par PowerShell), donc par exemple de formater un volume disque ...

    Pareil pour les procédures OLE automation. Là encore gros trou de sécurité.

    BCP est déjà mieux.
    Vous pouvez aussi utiliser un package SQL Server Integration Services (voir le tutoriel de Fleur-Anne Blain sur ce sujet) ou un petit script PowerShell qui feront très bien le travail, et ce de manière sécurisée.

    Quant à l'exception Access Denied que vous obtenez, c'est que vous n'êtes pas autorisé (ou en tout cas le compte que vous utilisez) à vous connecter à l'instance SQL Server en question.

    @++

Discussions similaires

  1. [MySQL-5.6] Exporter les résultats d'une requête SQL dans un fichier .sql ou .txt
    Par js8bleu dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/09/2013, 10h13
  2. Réponses: 1
    Dernier message: 15/03/2012, 09h56
  3. Réponses: 5
    Dernier message: 20/03/2007, 17h55
  4. [SQL-VBA] récupérer le résultat d'une requète SQL dans un fichier txt
    Par djidanestribbal dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/02/2007, 15h25

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