J'utilise le projet de base de données Visual Studio 2008 pour gérer mes scripts de base de données et le contrôle de version. Par défaut, les modèles de script de studio visuel sont encodés au format UTF-8. lorsque j'essaie de concaténer les scripts pour la publication de la base de données (en utilisant la commande DOS "type * .sql> dbscripts.sql") et exécutez le script concaténé à partir de SQL Server Management Studio, j'obtiens une erreur de caractère invalide. Toutefois, si je convertis chaque script au format ANSI (en utilisant le bloc-notes) et que je les concatène, je n'obtiens aucune erreur lorsque j'exécute le script concaténé. mais convertir chaque script dans un format de codage différent est fastidieux. Quelle est la meilleure façon d'exécuter plusieurs scripts SQL quel que soit le format d'encodage des scripts? dois-je créer un fichier batch et utiliser sqlcmd pour l'exécuter et rediriger la sortie vers un fichier texte? Y a-t-il des alternatives? Merci d'avance.exécution de plusieurs scripts SQL codés en UTF-8
Répondre
trouvé ce lien qui génère "SQLCMD" commandes à l'aide de Windows PowerShell. pour la concaténation, il semble qu'il n'y ait pas de solution sauf de sauvegarder chaque fichier au format ANSI. Je peux au moins générer un fichier avec toutes les commandes sqlcmd utilisant ce sans avoir à les concaténer
http://sqladm.blogspot.com/2010/02/generate-sqlcmd-statements.html
C'est à cause de la nomenclature dans le fichier. La commande TYPE est trop primitive pour le détecter et copiera simplement les 3 octets à la sortie.
Vous pouvez modifier l'encodage utilisé pour le fichier .sql. Tedious trop btw. Fichier + Enregistrer sous, cliquez sur la flèche du bouton Enregistrer, Enregistrer avec l'encodage et sélectionnez votre page de codes actuelle. Comme 1252 pour l'Europe de l'Ouest et les Amériques, c'est probablement le premier de la liste. C'est la même chose que vous avez fait avec le Bloc-notes.
Méfiez-vous des problèmes que vous pouvez rencontrer si le serveur fonctionne avec une page de codes différente et que vos scripts contiennent des caractères accentués. Je voudrais juste écrire un petit utilitaire qui utilise Directory.GetFiles et StreamReader/Writer pour résoudre le problème.
Vous devez utiliser le copy *.sql dbscripts.sql
La solution facile est d'ajouter le drapeau codepage à la commande, -f 65001
sqlcmd /S myServer /d myDatabase -E -f 65001 -i MyUTFScriptWithoutBOM.sql
- 1. Exécution de plusieurs scripts Btrace
- 2. MSBUILD Exécution de scripts SQL modifiés uniquement
- 3. Exécution de plusieurs scripts comman ou sql à l'aide de OLE DB dans SQL Server
- 4. Exécution de scripts bash en php
- 5. exécution de la commande même dans plusieurs scripts shell
- 6. plusieurs scripts en javascript
- 7. Le serveur Mysql ne prend pas en charge les caractères utf8 codés sur 4 octets.
- 8. SQL plus exécution de plusieurs requêtes
- 9. SQL Server exécution de plusieurs Totaux
- 10. Wix, PostgreSQL install, exécution des scripts Postgresql
- 11. Exécution de scripts de base de données en C#
- 12. Exécution de scripts R avec des tracés
- 13. UTF8 problème SQL Server
- 14. scripts IronPython exécution de code C#
- 15. Exécution d'une liste de scripts bash consécutivement
- 16. Cross Database SQL Scripts
- 17. Exécution de scripts Python sur un serveur?
- 18. Exécution de plusieurs lignes en Python
- 19. exécution de plusieurs threads en Java
- 20. Scripts interprétés: implicite vs exécution explicite
- 21. en utilisant des scripts sql en javascript
- 22. composer plusieurs scripts mysql
- 23. Exécution de SQL Profiler en arrière-plan
- 24. Exécution de scripts sur le téléchargement de la source
- 25. Scripts SQL Server réactivables
- 26. Android: Exécution de plusieurs activités
- 27. générer des scripts SQL
- 28. Exécution de scripts SVN d'utilisateurs sans mot de passe
- 29. Exécution d'un script SQL stocké en tant que ressource
- 30. Conversion de UTF8 en ASCII
essayé déjà, cela n'a pas fonctionné non plus, je reçois toujours l'erreur de caractère invalide. – RKP
@RKP, que se passe-t-il si vous fusionnez les fichiers d'abord, puis convertissez en ansi le fichier final. Donc, vous avez seulement besoin de faire la conversion une fois .. vaut la peine .. –
non, j'ai essayé celui-là aussi et n'a pas fonctionné. dans ce cas, le caractère invalide est visible, c'est la seule différence. Je suppose que l'utilisation de la commande "sqlcmd" semble être la seule option en créant un fichier batch et en y mettant tous les noms de fichiers. J'aurais pu remplacer les modèles de studio visuel pour utiliser le format ANSI, mais je cherchais une meilleure façon de résoudre ce problème. Merci pour votre réponse. – RKP