web-dev-qa-db-fra.com

SQL Server: requête d'exportation sous forme de fichier .txt

J'essaie d'exporter les résultats de ma requête SQL Server dans un dossier au format .txt (il s'agit d'un travail automatisé).

Je sais que l'équivalent dans MySQL fonctionne avec INTO OUTFILE. Quelqu'un connaît-il la meilleure façon de procéder dans SQL Server 2008 Management Studio? 

SELECT DISTINCT RTRIM (s1.SGMNTID) AS 'AccCode',RTRIM (s1.DSCRIPTN) AS 'CodeDesc', CASE
    WHEN  s1.SGMTNUMB = '1' THEN '1' 
    WHEN s1.SGMTNUMB = '2' THEN '2'
    WHEN s1.SGMTNUMB = '3' THEN '110'
    WHEN s1.SGMTNUMB = '4' THEN '4'
    WHEN s1.SGMTNUMB = '5' THEN '120'
    END AS 'AccountType_id',
CASE WHEN s1.SGMTNUMB = '2' 
THEN LEFT(s1.SGMNTID, 2)
ELSE 'DEFAULT'
END AS 'AccGroupName'

 FROM GL40200 s1

UNION 

SELECT  REPLACE ([ACTNUMBR_1]+'-'+ [ACTNUMBR_2]+'-'+ [ACTNUMBR_3]+'-'+[ACTNUMBR_4]+'-'+    [ACTNUMBR_5],' ', '') AS 'AccCode',
 '' AS 'CodeDesc',
 '0' AS 'AccountType_id',
 'Default' AS 'AccGroupName'
FROM GL00100 a

INTO OUTFILE 'C:\Users\srahmani\verian/myfilename.txt'
10
SRahmani

vous faites cela dans l'application SSMS, pas dans le SQL. Dans la barre d'outils, sélectionnez

Requête -> Résultats - - Résultats à classer

19
D Stanley

Un autre moyen est d'utiliser la ligne de commande, en utilisant osql:

OSQL -S SERVERNAME -E -i thequeryfile.sql -o youroutputfile.txt

Cela peut être utilisé à partir d'un fichier BAT et programmé par un utilisateur Windows comme authentifié.

9
Frank N Stein

Vous pouvez utiliser utilitaire bcp .

Pour copier le jeu de résultats à partir d'une instruction Transact-SQL dans un fichier de données, utilisez l'option queryout. L'exemple suivant copie le résultat d'une requête dans le fichier de données Contacts.txt. L'exemple suppose que vous utilisez l'authentification Windows et que vous disposez d'une connexion sécurisée à l'instance de serveur sur laquelle vous exécutez la commande bcp. Au Invite de commande Windows, entrez:

bcp "<your query here>" queryout Contacts.txt -c -T

Vous pouvez utiliser BCP en appelant directement en tant que commande de système d’exploitation dans un travail d’agent SQL.

5
Mihai Bejenariu

Vous pouvez utiliser Windows Powershell pour exécuter une requête et la générer dans un fichier texte.

Invoke-Sqlcmd -Query "Sélectionnez * dans la base de données" -ServerInstance "Nom_serveur\SQL2008" -Database "DbName"> c:\Users\outputFileName.txt

4
Dan Pickard

L'utilitaire BCP peut également être utilisé sous la forme d'un fichier .bat, mais faites attention aux séquences d'échappement (les guillemets "" doivent être utilisés conjointement) et aux balises appropriées.

.bat Exemple:

C:
bcp "\"YOUR_SERVER\".dbo.Proc" queryout C:\FilePath.txt -T -c -q
-- Add PAUSE here if you'd like to see the completed batch

-q DOIT être utilisé en présence de citations dans la requête elle-même.

BCP peut également exécuter des procédures stockées si nécessaire. Encore une fois, soyez prudent: les tables temporaires doivent être créées avant l'exécution, sinon vous devriez envisager d'utiliser les variables de table.

0
CodeBreaker