Exporter des données de SQL vers un file text dynamicment

Je voudrais savoir comment je peux exporter des données d'une command select vers un file text normal à partir de MSSQL en utilisant la méthode xc_cmdshell bcp.

J'utilise SQL 2012 et mon code ressemble à ceci:

Declare @filename varchar(50), @cmd varchar(4000), @file varchar(100) set @filename = 'TestMe' set @file = 'c:\' + @FileName + '.txt' set @cmd = 'bcp "Select * from TableName" queryout"' set @cmd = @cmd + @file + '" -T -is' EXEC xp_cmdshell @cmd 

La requête s'exécute avec succès, mais elle me donne une sortie qui dit:

bcp: impossible d'ouvrir le file d'input s: aucun file ou directory de ce type

J'ai même essayé de créer le file et de le coder en dur, mais en vain. Toute aide serait grandement appréciée.

vous spécifiez l'indicateur -i qui doit spécifier un file d'input. Par conséquent, la command est interprétée comme "utiliser un file d'input" "qui bien sûr n'existe pas …

vous spécifiez l'indicateur -i qui doit spécifier un file d'input. Par conséquent, la command est interprétée comme "utiliser un file d'input" "qui bien sûr n'existe pas …

Juste pour reference, votre command BCP devrait ressembler à ceci:

 bcp "Select * from TableName" queryout "OutputFilename" -d "DatabaseName" -T -n 

TableName est le nom de la table, OutputFilename est le path d'access complet + nom du file et DatabaseName est la database réelle. Cela suppose une connection sécurisée ( -T ), un server local (n'a pas été placé dans le commutateur -S ) et sélectionne automatiquement un format pour les colonnes de sortie ( -n )

J'espère que cela pourra aider.

Vérifiez si votre SQL a des permissions pour accéder à C :. Cela peut être fait facilement en essayant de sauvegarder quelque chose à partir de SSMS sur C: \