2010-01-22 10 views
2

J'ai une table très simple avec une seule colonne (+ la colonne clé). Cette colonne est de type varchar (N). Je voudrais importer des données d'un fichier texte. Le fichier ressemble à ceci:Comment importer des données d'un fichier dans une seule colonne d'une base de données SQL Server?

string1 
string2 
. 
. 
. 
stringZ 

Je ne sais pas comment générer un script pour insérer ces valeurs dans la table. Ou y a-t-il un outil encore plus simple à importer dans un tel scénario?

Mise à jour: désolé j'ai oublié que j'ai une autre colonne dans cette table et sa valeur doit être définie sur le même int pour toutes les lignes.

Merci pour votre aide.

Répondre

2

Il existe plusieurs façons d'écrire votre propre utilitaire pour le faire, d'utiliser BCP ou d'autres outils intégrés. L'approche la plus simple consisterait probablement à utiliser l'assistant d'importation de données - dans le cadre du clic droit sur SSMS sur la base de données dans laquelle vous souhaitez importer, choisissez Tâches puis Importer des données.

+0

Je l'ai essayé mais j'oublié de mentionner que j'ai une autre colonne dans ce tableau et sa valeur doit être réglée sur la même int pour toutes les lignes. Donc, je ne pouvais pas faire fonctionner l'outil d'importation. Bien sûr, je pourrais voir si je peux modifier mon fichier texte pour mettre ce champ dans chaque rangée. –

+0

Après avoir modifié mon fichier d'entrée pour ajouter la constante sur chaque ligne, j'ai pu utiliser l'outil que vous avez mentionné (importer dans SSMS). Merci. –

5

Vous pouvez utiliser en vrac pour insérer faire

BULK 
INSERT your_table 
FROM 'c:\your_file.txt' 
WITH 
(
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 
GO 
+0

désolé j'ai oublié que j'ai une autre colonne dans cette table et sa valeur doit être définie sur le même int pour toutes les lignes. –

+0

Puis insérez-le en vrac dans la table temporaire et sélectionnez les valeurs nécessaires (+ constantes) à partir de là dans votre table principale. – Arvo

+0

J'ai choisi la solution de Keith parce qu'elle fonctionnait sans trop d'effort dans ce cas. Peut-être que votre solution aurait aussi fonctionné avec plus de détails après avoir mis à jour ma question. Donc, merci quand même. –

Questions connexes