2011-09-09 3 views
0

J'essaie d'écrire un fichier texte en sortie à partir d'une table. Je ne reçois aucune erreur mais le fichier n'est pas créé.écrire un texte à partir d'une table en utilisant tsql

EXEC master..xp_cmdshell 'bcp "SELECT * FROM DB.dbo.table1" queryout "C:\employee.txt" -T -Sservername -U user111 -P pwd -c -t,' 

Aucun fichier n'est créé, je ne sais pas pourquoi. Quelqu'un peut-il aider?

Je ne reçois pas les erreurs au lieu je reçois des messages suivants:

usage: bcp {dbtable | query} {in | out | queryout | format} datafile 
[-m maxerrors]   [-f formatfile]   [-e errfile] 
[-n native type]   [-c character type]  [-w wide character type] 
[-N keep non-text native] [-V file format version] [-q quoted identifier] 
    [-C code page specifier] [-t field terminator] [-r row terminator] 



[-i inputfile]   [-o outfile]    [-a packetsize] 

[-S server name]   [-U username]   [-P password] 
[-T trusted connection] [-v version]    [-R regional enable] 
[-k keep null values]  [-E keep identity values] 
    NULL 

Je courais sur le serveur A, mais la base de données est sur le serveur B. donc sur le serveur AI utilisé studio de gestion SQL Server et a donné le serveur B détails pour se connecter. Après cela, j'ai écrit une requête comme mentionné ci-dessus. donc le fichier va se former sur quel serveur?

+0

Cela fonctionne réellement pour moi malgré la virgule supplémentaire apparente à la fin et le fait que vous spécifiez 'T' et en passant un nom d'utilisateur et mot de passe. Quelle version êtes-vous? –

+0

J'ai supprimé la virgule à la fin a également supprimé le nom d'utilisateur et mot de passe. Mais toujours pas de chance – CPDS

Répondre

0

la requête était correcte -

EXEC master..xp_cmdshell 'bcp "SELECT * FROM DB.dbo.table1" queryout "C:\employee.txt" 

-Sservername -U user111 -P PWD -c -t, »

lors de la frappe en studio SQL Server Management Je pressai entrer après queryout si la déclaration "C: \ employee.txt" -Sservername -U utilisateur111 -P pwd -c -t, arrivait à la ligne suivante. à cause de cela je n'obtenais aucune erreur ou

0

A travaillé pour moi même avec ou sans les espaces après le nom d'utilisateur et passer. Avez-vous un accès en écriture à C: \ sur la boîte du serveur? Avez-vous besoin d'un nom d'utilisateur ou d'un laissez-passer si vous utilisez également -T?

+0

Je l'utilise sur le serveur A mais la base de données est sur le serveur B. Donc sur le serveur A, j'ai utilisé le studio de gestion SQL SERVER et j'ai donné au serveur B les détails pour me connecter. Après cela, j'ai écrit une requête comme mentionné ci-dessus. donc le fichier va se former sur quel serveur? – CPDS

+0

sur le serveur l'instruction est exécutée, Serveur A – Mike

+0

la requête était correcte - EXEC maître..xp_cmdshell 'bcp "SELECT * FROM DB.dbo.table1" queryout "C: \ employee.txt" -Serveur -Serveur -U utilisateur111 -P pwd -c -t, ' en tapant dans SQL Server SERVER MANAGEMENT j'ai appuyé sur entrée après la requête de sorte que l'instruction "C: \ employee.txt" -Serveur -Utilisateur111 -P pwd -c -t, entrait ligne suivante. Pour cette raison, je n'obtenais aucune erreur ou fichier de sortie. – CPDS

0

De MSDN:

sécurité Note

Lorsque le utilitaire bcp se connecte à SQL Server avec une connexion sécurisée en utilisant la sécurité intégrée, utilisez l'option -T (connexion sécurisée) instead of le nom d'utilisateur et mot de passe combinaison.

Questions connexes