J'ai des difficultés à utiliser le processus BCP SQL pour charger mes tables avec des données. Je l'appelle à partir d'une application .NET, donc j'exécute l'exécutable xp_cmdshell pour exécuter la commande bcp. Voici ce qu'un de ces commandes ressemble à: « »Base de données BCP avec période dans le nom
EXEC master..xp_cmdshell 'bcp "[D001Test.Restore].[dbo].[GeneralComments]" in "<DataFile>" -q -c -t "|_|" -r "|+~+|" -k -V80 -a33000 -E -STest'
Lorsque le nom de la base, je suis importer dans (dans ce cas D001Test.Restore) a dans le nom, la commande bcp échoue. Y at-il un moyen de contourner cela? J'ai essayé à la fois avec et sans les crochets. Je peux devoir importer les données dans une nouvelle base de données, et le renommer au nom désiré après qu'il soit fait.
Je vous remercie de la réponse. Je vais le tester. Cependant, j'ai toujours le problème où le nom de la base de données a un espace et une période dans le nom. J'ai provisoirement implémenté une solution pour utiliser une table temporaire avec des traits de soulignement remplaçant les points, mais c'est un concept plutôt moche. – Kevin
@Kevin Si vous avez un espace et une période dans le nom de la base de données, vous avez besoin des guillemets. bcp "[D001 Test.Restore] .dbo.GeneralComments" dans "" -c -t "| _ |" -r "| + ~ + |" -k -V80 -a33000 -E -STest –
Bill
@Bill Malheureusement cela ne fonctionne pas. Si vous utilisez les guillemets, le processus bcp doit être programmé pour rechercher les périodes, indépendamment des parenthèses. Donc ceci: EXEC master..xp_cmdshell 'bcp' [D019Restore.Generic Test] .dbo.GeneralComments "out"
Kevin