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

Développement SQL Server Discussion :

Exporter le résultat d'une sélection dans un fichier csv


Sujet :

Développement SQL Server

  1. #1
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    janvier 2004
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : janvier 2004
    Messages : 256
    Points : 220
    Points
    220
    Par défaut Exporter le résultat d'une sélection dans un fichier csv
    Bonjour à tous.

    J'exporte les données de deux tables dans deux fichiers csv avec le code ci-dessous(trouvé quelque part) qui fonctionne parfaitement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    USE [DB]
    GO
     
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
     
    ALTER Procedure [dbo].[ExportCsvFile]
    (
     @ID_KEY INT = -1
    )
    AS
    BEGIN
     
    declare @prevAdvancedOptions int
    declare @prevXpCmdshell int
     
    select @prevAdvancedOptions = cast(value_in_use as int) from sys.configurations where name = 'show advanced options'
    select @prevXpCmdshell = cast(value_in_use as int) from sys.configurations where name = 'xp_cmdshell'
     
    if (@prevAdvancedOptions = 0)
    begin
        exec sp_configure 'show advanced options', 1
        reconfigure
    end
     
    if (@prevXpCmdshell = 0)
    begin
        exec sp_configure 'xp_cmdshell', 1
        reconfigure
    end
     
     
    exec master..xp_cmdshell 'sqlcmd -S MYSERVER\SQLSERVER -U sa -P Pswd -Q "set nocount on; select * from [DB].[dbo].[TABLE_A]()"   -o "C:\Table_a.csv" -W -w 1024 -s,”'
    exec master..xp_cmdshell 'sqlcmd -S MYSERVER\SQLSERVER -U sa -P Pswd -Q "set nocount on; select * from [DB].[dbo].[TABLE_B]()"   -o "C:\Table_b.csv" -W -w 1024 -s,”'
     
     
    if (@prevXpCmdshell = 0)
    begin
        exec sp_configure 'xp_cmdshell', 0
        reconfigure
    end
     
    if (@prevAdvancedOptions = 0)
    begin
        exec sp_configure 'show advanced options', 0
        reconfigure
    end
    END

    Voici mon problème.
    Je n'arrive pas à filtrer les données dans la selection.

    J'aimerai ajouter un where dans les deux lignes ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    exec master..xp_cmdshell 'sqlcmd -S MYSERVER\SQLSERVER -U sa -P Pswd -Q "set nocount on; select * from [DB].[dbo].[TABLE_A]()"   -o "C:\Table_a.csv" -W -w 1024 -s,”'
    exec master..xp_cmdshell 'sqlcmd -S MYSERVER\SQLSERVER -U sa -P Pswd -Q "set nocount on; select * from [DB].[dbo].[TABLE_B]()"   -o "C:\Table_b.csv" -W -w 1024 -s,”'
    qjouter quelque chose comme ça en passant le paramètre de la procédure.

    TABLE_A et TABLE_A sont des fonctions de table.

    D'avance merci pour votre aide.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    20 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2002
    Messages : 20 951
    Points : 49 772
    Points
    49 772
    Billets dans le blog
    1
    Par défaut
    Il faut créer une procédure stockée qui encapsule ces commandes et modifier la requête pour du SQL dynamique.

    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/ * * * * *

  3. #3
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    janvier 2004
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : janvier 2004
    Messages : 256
    Points : 220
    Points
    220
    Par défaut
    Bonjour SqlPro et merci pour ce conseil.

    Je vais essayer.

    Mon code est une procédure stockée, Ne pourrais-je pas la modifier directement, si cela est possible, pourriez-vous m'iader à le faire.

    D'avance merci.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/08/2008, 13h43
  2. Réponses: 2
    Dernier message: 07/04/2008, 17h37
  3. Réponses: 2
    Dernier message: 15/11/2007, 13h07
  4. Réponses: 6
    Dernier message: 23/01/2007, 15h35

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