Convertir SSMS .rpt fichier de sortie .txt/.csv
Je veux exporter mon grand SSMS (SQL Server Management Studio) résultat de la requête (2,5 m lignes, 9) comme .csv délimité par des virgules ou .txt (avec les en-têtes). (MS SQL Server 2005 Management Studio.)
Afin que je puisse ensuite le lire ligne par ligne dans le programme VBA (pour faire certains calculs sur les données) ou de faire des requêtes sur les dans Excel (par exemple avec Microsoft Query). Les calculs sont compliqués et je préfère le faire ailleurs que la SSMS.
Si je choisis ‘résultat de la requête de texte " dans SSMS et une réponse faible (quelques lignes (ex: jusqu'à 200k), je pourrais bien sûr, il suffit de copier et coller dans un éditeur de texte. Pour ma grande réponse ici, je pourrais bien sûr copier et coller 200k lignes à la fois, 10 fois, dans un éditeur de texte comme Ultra-Edit. (Quand j'ai essayer tous les 2,5 m à la fois, je reçois un avertissement de mémoire à l'intérieur de SSMS.) Mais pour l'avenir, j'aimerais une solution plus élégante.
Pour " résultat de la requête dans le fichier’, SSMS écrit à un .fichier rpt toujours. (Lorsque vous faites un clic droit dans la fenêtre de résultats et de choisir "enregistrer sous", il donne une erreur de mémoire comme ci-dessus.)
--> Donc, on dirait que ma seule option est d'avoir SSMS sortie de son résultat dans un fichier c'est à dire .rpt et puis, ensuite, de les convertir .rpt pour .txt.
Je suppose que c' .la rpt est un fichier de Crystal Reports? Ou n'est-ce pas. Je n'ai pas de Crystal Reports sur mon PC, donc je ne peux pas l'utiliser pour convertir le fichier.
Lors de l'ouverture de l' .rpt dans l'Ultra-Edit il a l'air bien. Toutefois, dans Microsoft Query dans Excel, les titres ne veut pas montrer.
Quand je l'ai simplement lu & écrire l' .rpt à l'aide de VBA, le fichier moitiés de taille. (330meg à 180meg). Dans Microsoft Query les titres ne montrons maintenant (bien que le premier nom de champ a un drôle de personnage, ce qui s'est passé pour moi avant que dans d'autres totalement différentes situations). Je ne semblent être en mesure de faire significatives des tableaux croisés dynamiques dans Excel.
Cependant, quand j'ai ouvert ce nouveau fichier dans l'Ultra-Edit, il montre les caractères Chinois! Pourrait-il encore être drôles de personnages en elle quelque part?
--> Est-il peut-être gratuit (et simple et sûr) convertisseur app disponible quelque part. Ou devrais-je juste confiance que ce .txt est très bien pour la lecture dans mon programme VBA.
Grâce
- Je me demande pourquoi vous voulez à la sortie, de nombreuses lignes quand tout ce que vous voulez faire est encore interroger les données? Il n'y a pas besoin de texte de sortie de travailler avec Access ou Excel et SQL Server. En outre, SQL Server si assez bon dans les requêtes de lui-même.
- Salut, c'est parce que je veux lancer les données au moyen de code de programme qui est plus "traitement" style de "requête" de style. En d'autres termes, lire plusieurs fichiers d'entrée (dont ce fichier n'est qu'un), exécuter plusieurs procédures/ fonctions, puis d'écrire plusieurs fichiers de sortie. Je suis tout simplement à l'aide de VBA parce que j'aime l'interface de feuille de calcul pour la saisie de mes paramètres de course. Je pourrais le remplacer par d'autres langages de programmation pour elle et mon problème serait le même.
- Je sais que T-SQL peut faire des procédures etc. lui-même très bien, je préfère juste un langage de programmation qui est un peu plus de nature différente. P. s. En fait, j'ai compris, ce que je peux faire, c'est: au lieu de SSMS, collez le code T-SQL dans Excel et de l'exécuter à partir de la même base de données, mais en utilisant le code VBA à la place. Ensuite, je peux écrire la sortie plus facilement directement dans un fichier texte (à la fin)...
- ...Les tableaux croisés dynamiques, etc. ont été juste pour faire des vérifications sur la nature des données au total, avant de faire le principal exécuter sur elle.
- (Seulement pour les nouveaux lecteurs de ce fil ... C'est juste par hasard que l' .rpt extension est la même que les Rapports Crystal fichiers. L' .rpt écrit par SMS ici, c'est sa propre extension de ces fichiers texte)
- Dans le cas où vous avez juste besoin de charger le .fichier rpt au lieu de comprendre comment les exporter en tant que .csv, voici les étapes: stackoverflow.com/a/56188149/5070440
Vous devez vous connecter pour publier un commentaire.
Manière Simple: Dans SQL Server Management Studio, aller à la "Requête" menu & sélectionnez "Options de Requête..." > Résultats > Texte > Modifier "Format de Sortie" à "Délimité par des Virgules". Maintenant, vous pouvez exécuter votre requête à exporter vers un fichier, et une fois fait de renommer le fichier à partir de
.rpt
à.csv
et l'ouvrir dans Excel :).:setvar mypth "F:\work\y temp\SSMS TEST\with sqlcmd\" :out $(mypth)"2 result.txt".
. Et, bien sûr, d'abord: menu > query > mode SQLCMDVoici ma solution.
Bien avec l'aide d'un ami, j'ai trouvé ma solution: Rpt fichiers sont de simples fichiers texte générés dans MS SQL Server Management Studio, mais avec UCS-2 Little Endian encodage au lieu de la norme ANSI.
--> Dans l'Ultra-Modifier l'option " fichier, les options de conversion, unicode en ASCII’ a fait le tour. Le fichier texte permet de réduire de 330meg à 180 meg, Microsoft Requête dans Excel, vous pouvez maintenant voir les colonnes, et VBA peut lire le fichier & des lignes de production*.
P. s. Une autre solution aurait été d'utiliser MS Access (qui permet de traiter de grands résultats) et de se connecter avec ODBC pour la base de données. Cependant, alors que j'aurais à utiliser de Jet-SQL qui a moins de commandes que le T-SQL de MS SQL Server Management Studio. Apparemment on peut créer un nouveau fichier .adp dans MS Access 2007 et ensuite utiliser T-SQL pour SQL Server back-end. Mais dans MS Access 2010 (sur mon PC) cette option semble ne pas exister plus.
Vous pouvez utiliser BCP
Ouvrez une invite de commandes, puis tapez ceci:
-U -P
(au lieu de-T
) pour l'Authentification SQL.Votre application a un problème avec les caractères UNICODE. Vous pouvez forcer une page de code à l'aide de
-C {code page}
. En cas de doute, essayez de 850.-t
force de tabulation comme séparateur de champ, vous pouvez le modifier pour virgule-t,
La chose intéressante est que vous pouvez les appeler directement à partir de votre VBA exécution de la commande du shell.
BCP -i join.sql -o test.csv -c -t -S MYSERVER -T
. Et à voir : stackoverflow.com/questions/10568975/...bcp
etsqlcmd
... que je ne connaissais pas il ya dix minutes... Downvoted. Nous allons obtenir cette réponse édité ou supprimé.C'est la façon dont je le vois, vous pouvez le faire.
Ma Source (Réponse de DavidAir)
Sélectionnez "résultats de la grille", puis puis cliquez-droit sur la grille et sélectionnez "Enregistrer les Résultats sous..." Cela permettra d'économiser un fichier CSV.
En fait, il y a un problème avec ça si certaines valeurs contiennent des virgules - la CSV n'est pas échappées. Le fichier RPT est en fait assez agréable car il contient des colonnes de largeur fixe. Si vous avez Excel, une façon relativement facile de convertir le résultat au format CSV est d'ouvrir le fichier RPT dans Excel. Cela permet d'ouvrir l'assistant d'importation de texte et Excel serait de faire un assez bon travail à deviner les colonnes. Passer par l'assistant, puis enregistrez les résultats dans un fichier CSV.
Dans mon cas, j'exécute une requête sur SSMS (avant cela, appuyez sur CTRL+MAJ+F) le résultat d'ouvrir une fenêtre pour l'enregistrer comme un fichier rpt, je ne pourrais pas le lire (pas de Rapport Crystal à l'installer sur mon ordinateur) donc...la prochaine fois, j'ai lancé la requête je l'ai enregistré comme (tous les fichiers) ensemble avec l'extension *.txt, et c'est ça j'ai pu le lire en tant que fichier texte.
De la première à obtenir vos données .fichier rpt en utilisant l'une des méthodes mentionnées ci-dessus.
Par défaut .rpt fixe de l'espace de la colonne. (262MB)
Délimité par des virgules avec Unicode. (52 MO) - j'ai utilisé ce.
Changer l'extension de fichier .csv.
Ouvrir/Importer dans excel et vérifier les données. Ce type de fichier "Texte Unicode".
De l'enregistrer comme CSV (Délimité par des Virgules), qui taille réduite de 25 MO.
Je recommande d'utiliser le "SQL Server Assistant Importation et Exportation" pour plusieurs raisons:
Elle peut être accessible par un clic-droit sur votre base de données dans la gestion de studio (vous devez cliquez-droit sur la base de données et pas sur la table) et la sélection des Tâches > Exporter des Données.
Quand on lui a demandé de source de données, vous pouvez sélectionner le "SQL Server Native Client" et quand on lui demande de choisir une destination vous pouvez sélectionner "Fichier Plat de Destination".
Vous est alors demandé de spécifier une table ou d'une requête à utiliser.
Vous pouvez trouver plus d'informations sur l'outil ici:
https://docs.microsoft.com/en-us/sql/integration-services/import-export-data/start-the-sql-server-import-and-export-wizard?view=sql-server-2017