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 :

Exporter une requête sql dans un fichier (automatiquement)


Sujet :

MS SQL Server

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

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

    Informations forums :
    Inscription : Avril 2018
    Messages : 9
    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 retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    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é
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : Avril 2018
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci pour le changement de forum, je n'avais pas fais attention! ^^'

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

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

    Informations forums :
    Inscription : Septembre 2016
    Messages : 731
    Points : 1 416
    Points
    1 416
    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

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    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