Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server sur Linux
Cet article explique comment utiliser l’utilitaire bcp pour copier en bloc des données entre une instance de SQL Server sur Linux et un fichier de données dans un format spécifié par l’utilisateur.
Vous pouvez utiliser bcp pour importer un grand nombre de lignes dans des tables SQL Server ou pour exporter des données de SQL Server tables dans des fichiers de données. À l’exception de l’option de requête, bcp ne nécessite aucune connaissance de Transact-SQL. L’utilitaire en ligne de commande bcp fonctionne avec Microsoft SQL Server s’exécutant localement ou dans le cloud, sur Linux, Windows ou Docker et Azure SQL Database et Azure Synapse Analytics.
Cet article vous montre comment :
- Importer des données dans une table à l’aide de la commande
bcp in - Importer des données à partir d’une table à l’aide de la commande
bcp out
Installer les outils en ligne de commande SQL Server
bcp fait partie des outils en ligne de commande SQL Server, qui ne sont pas installés automatiquement avec SQL Server sur Linux. Si vous n’avez pas encore installé les outils en ligne de commande SQL Server sur votre machine Linux, vous devez les installer. Pour plus d’informations sur l’installation des outils, sélectionnez votre distribution Linux dans la liste suivante :
Importer des données avec bcp
Dans ce tutoriel, vous allez créer un exemple de base de données et de table sur l’instance de SQL Server locale (localhost), puis utiliser bcp pour charger dans l’exemple de table à partir d’un fichier texte sur le disque.
Créer un exemple de base de données et de table
Commencez par créer un exemple de base de données avec une table simple utilisée dans le reste de ce didacticiel.
Sur votre boîte Linux, ouvrez un terminal de commande.
Copiez et collez les commandes suivantes dans la fenêtre du terminal. Ces commandes utilisent l’utilitaire de ligne de commande
sqlcmdpour créer un exemple de base de données (BcpSampleDB) et une table (TestEmployees) sur l’instance de SQL Server locale (localhost). N’oubliez pas de remplacer leusernameet le<password>, si nécessaire, avant d’exécuter les commandes.
Votre mot de passe doit suivre la stratégie de mot de passe par défaut de SQL Server . Par défaut, le mot de passe doit comporter au moins huit caractères longs et contenir des caractères de trois des quatre jeux suivants : lettres majuscules, lettres minuscules, chiffres en base 10 et symboles. Les mots de passe peuvent comporter jusqu’à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Créer la base de données BcpSampleDB :
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Créer la table TestEmployees dans la base de données BcpSampleDB :
sqlcmd -S localhost -U sa -P <password> -d BcpSampleDB -Q "CREATE TABLE TestEmployees (Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(50), Location NVARCHAR(50));"
Créer le fichier de données source
Copiez et collez la commande suivante dans la fenêtre du terminal. Nous utilisons la commande cat prédéfinie pour créer un exemple de fichier de données textuelles avec trois enregistrements. Sauvegardez le fichier dans votre répertoire personnel sous le nom ~/test_data.txt. Les champs des enregistrements sont délimités par une virgule.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Vous pouvez vérifier que le fichier de données a été créé correctement en exécutant la commande suivante dans la fenêtre du terminal :
cat ~/test_data.txt
Ce qui suit s’affiche dans la fenêtre du terminal :
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Importer des données à partir du fichier de données source
Copiez et collez les commandes suivantes dans la fenêtre du terminal. Cette commande utilise bcp pour se connecter à l’instance SQL Server locale (localhost) et importer les données du fichier de données (~/test_data.txt) dans la table (TestEmployees) dans la base de données (BcpSampleDB). N’oubliez pas de remplacer le nom d’utilisateur et le <password>, si nécessaire, avant d’exécuter les commandes.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Voici une brève vue d’ensemble des paramètres de ligne de commande que bcp nous avons utilisés dans cet exemple :
-
-S: spécifie l’instance de SQL Server à laquelle se connecter -
-U: spécifie l'ID de connexion utilisé pour se connecter à SQL Server -
-P: spécifie le mot de passe de l’ID de connexion -
-d: spécifie la base de données à laquelle se connecter -
-c: effectue des opérations en utilisant un type de données caractères -
-t: spécifie le délimiteur de champ. Nous utilisonscommaen tant que marque de fin de champ pour les enregistrements dans notre fichier de données
Remarque
Dans cet exemple, nous ne spécifions pas de délimiteur de ligne personnalisé. Les lignes du fichier de données texte étaient correctement terminées par newline lorsque nous avons utilisé la commande cat pour créer le fichier de données précédemment.
Vous pouvez vérifier que les données ont été correctement importées en exécutant la commande suivante dans la fenêtre du terminal. N’oubliez pas de remplacer le username et le <password>, si nécessaire, avant d’exécuter la commande.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"
Les résultats suivants doivent s’afficher :
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Exporter des données avec bcp
Dans ce tutoriel, vous utilisez bcp pour exporter des données à partir de l’exemple de table que nous avons créé précédemment vers un nouveau fichier de données.
Copiez et collez les commandes suivantes dans la fenêtre du terminal. Ces commandes utilisent l’utilitaire bcp de ligne de commande pour exporter des données de la table TestEmployees de la base de données BcpSampleDB vers un nouveau fichier de données appelé ~/test_export.txt. N’oubliez pas de remplacer le nom d’utilisateur et le <password>, si nécessaire, avant d’exécuter la commande.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Vous pouvez vérifier que les données ont été exportées correctement en exécutant la commande suivante dans la fenêtre du terminal :
cat ~/test_export.txt
Ce qui suit s’affiche dans la fenêtre du terminal :
1,Jared,Australia
2,Nikita,India
3,Tom,Germany