2009-11-21 6 views
0

J'ai essayé le protocole BCP, mais cela ne fonctionne pas. Sql continue de me donner du texte d'aide ..Comment exporter dans un fichier dans un processus stocké?

Quoi qu'il en soit, cela n'a pas d'importance, car je ne veux pas coller le contenu de la procédure stockée AGAIN dans une chaîne de caractères pour pouvoir exporter.

Ma question: J'ai un proc stocké existant. Je voudrais que le résultat soit automatiquement lancé dans un fichier texte.

Des indices?

+0

@KevinDeus - bcp lève le texte d'aide lorsqu'il est appelé de manière incorrecte. Pouvez-vous coller dans un exemple qui ne fonctionne pas pour vous? Peut-être que quelqu'un peut corriger la syntaxe pour vous. –

+0

Je voudrais, malheureusement, mon pare-feu de travail ne laissera pas passer! Donc j'ai dû le retirer. Êtes-vous en train de dire que BCP est une bonne méthode à utiliser pour exporter dans un proc stocké existant? n'auriez-vous pas à recopier votre texte de proc mémorisé? – KevinDeus

Répondre

0

ce qui est très facile

CREATE PROCEDURE sp_AppendToFile (@FileName varchar (255), @ Texte1 varchar (255)) AS DECLARE @FS int, int @OLEResult, @FileID int

EXECUTE @ OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUT IF @OLEResult <> 0 IMPRIMER 'Scripting.FileSystemObject' : Ouvrir un fichier exécutons @OLEResult = sp_OAMethod @FS, 'OpenTextFile', @FileID OUT, @FileName, 8, 1 IF @OLEResult <> 0 PRINT 'OpenTextFile'

--write Texte1 exécuter @OLEResult = sp_OAMethod @FileID, 'WriteLine', null, @ Texte1 IF @OLEResult <> 0 IMPRIMER 'WriteLine'

EXECUTE @OLEResult = sp_OADestroy @FileID EXECUTER @ OLEResult = sp_OADestroy @FS

de: http://www.motobit.com/tips/detpg_SQLWrFile/

+0

ok, donc cela fait-il champ par champ? – KevinDeus

+0

Cela a fonctionné pour moi, mais cela ne fonctionne que d'un seul champ à la fois. ce serait mieux s'il y avait un moyen de sortir une ligne ou une table entière à la fois. – KevinDeus

0

en supposant que vous avez enregistré MaProc procédure dans la base de données MyDB sur mon_serveur serveur, et que vous voulez des résultats dans le fichier de sortie délimité par des tabulations MyResults:

"bcp exec MyDB.dbo.MyProc" queryout MyResults -T -c t \ t S MonServeur

devraient fonctionner. bcp offre aussi beaucoup d'autres options de sortie.

Questions connexes