Je sais que ce n'est pas la solution exacte à la question ci-dessus, mais pour moi, c'était un cauchemar lorsque j'essayais de copier des données d'une base de données située sur un serveur séparé vers mon local.
J'essayais de le faire en exportant d' abord les données du serveur vers CSV/txt
, puis en les important dans ma table locale.
Les deux solutions: écrire la requête à importer CSV
ou utiliser l' assistant d' importation de données SSMS produisait toujours des erreurs (les erreurs étaient très générales, indiquant qu'il y avait un problème d'analyse). Et même si je ne faisais rien de spécial, juste exporter vers CSV
et ensuite essayer d' importer CSV
vers le local DB
, les erreurs étaient toujours là.
J'essayais de regarder la section de cartographie et l'aperçu des données, mais il y avait toujours un gros désordre. Et je sais que le problème principal venait de l'une des table
colonnes, qui contenait JSON
et l' SQL
analyseur traitait cela de manière incorrecte.
Donc finalement, j'ai trouvé une solution différente et je veux la partager au cas où quelqu'un d'autre aurait un problème similaire.
Ce que j'ai fait, c'est que j'ai utilisé l' assistant d'exportation sur le serveur externe.
Voici les étapes pour répéter le même processus:
1) Faites un clic droit sur la base de données et sélectionnezTasks -> Export Data...
2) Lorsque l'assistant s'ouvre, choisissez Suivant et à la place de "Source de données:" choisissez "SQL Server Native Client".
Dans le cas d'un serveur externe, vous devrez probablement choisir "Utiliser l'authentification SQL Server" pour le "Mode d'authentification:".
3) Après avoir appuyé sur Suivant , vous devez sélectionner la Destionation .
Pour cela, sélectionnez à nouveau "SQL Server Native Client".
Cette fois, vous pouvez fournir votre local (ou un autre externe DB
) DB
.
4) Après avoir cliqué sur le bouton Suivant, vous avez deux options pour copier la table entière de l'un DB
à l'autre ou pour écrire la requête pour spécifier les données exactes à copier. Dans mon cas, je n'avais pas besoin de la table entière (elle était trop grande), mais juste d'une partie de celle-ci, j'ai donc choisi «Ecrire une requête pour spécifier les données à transférer».
Je suggérerais d'écrire et de tester la requête sur un éditeur de requête distinct avant de passer à Wizard.
5) Et enfin, vous devez spécifier la table de destination où les données seront sélectionnées.
Je suggère de le laisser sous [dbo].[Query]
un Table
nom personnalisé au cas où vous auriez des erreurs lors de l'exportation des données ou si vous n'êtes pas sûr des données et que vous souhaitez les analyser plus avant avant de passer à la table exacte que vous souhaitez.
Et maintenant, allez directement à la fin de l'assistant en appuyant sur les boutons Suivant / Terminer .
BULK NSERT
ou n'avez pas les autorisations pour cela).