SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

Comment ouvrir un fichier rpt en tant que table SQL ?

Bien que cette réponse soit tardive, je n'ai pas vu de réponse canonique au problème d'ouverture du format de fichier .rpt et de son écriture dans une table SQL.

  1. Dans SQL Server Management Studio dans l'Explorateur d'objets, cliquez avec le bouton droit sur la base de données dans laquelle vous souhaitez charger le fichier et choisissez Tâches... Importer des données.

  2. Choisissez Flat File Source, sélectionnez votre fichier, puis assurez-vous que l'écran est configuré pour correspondre à la capture d'écran suivante (Code page=65001 UTF-8, Format=Ragged right, Column names in the first data row). Cliquez ensuite sur Suivant.

  1. Cliquez sur le premier caractère de chaque colonne (voir les surlignages jaunes dans la capture d'écran ci-dessous pour savoir où cliquer) pour insérer des colonnes aux endroits appropriés :

  1. Cliquez sur l'onglet Avancé à gauche. Parcourez chaque nom de colonne et supprimez les espaces à la fin du nom de la colonne. Corrigez les types de données comme bon vous semble. Attention, les premières colonnes peuvent devoir être des chaînes en raison du pied de page du fichier "(NNNaffected rows)".

  1. Accédez à l'onglet Aperçu sur la gauche, modifiez les "Lignes de données à ignorer" sur 1 et cliquez sur Actualiser :

  1. Cliquez sur le bouton Suivant et configurez votre connexion à votre base de données SQL :

  1. Cliquez sur suivant et saisissez le nom de votre table au format [dbo].[MyTable] puis cliquez sur Modifier les mappages et confirmez que les types de données de la colonne correspondent. Les colonnes de chaîne (DT_STR) doivent être des colonnes varchar ici. La chaîne Unicode (DT_WSTR) doit être ici des colonnes nvarchar.

  2. Cliquez sur Suivant et Terminer pour exécuter immédiatement. Vous devriez voir des messages de réussite et non des erreurs :

  1. Il y a un pied de page qui indique "(NNN rowsaffected)" (où NNN est le nombre de lignes de votre fichier). Interrogez la table SQL de destination pour trouver cette ligne et la supprimer. select * from MyTable where MyColumn1 like '%(%' peut vous aider à trouver cette ligne. Veuillez confirmer que la requête renvoie une seule ligne avant de la supprimer.