J'ai SQL Server 2008
, SQL Server Management Studio.
J'ai besoin de sélectionner des données Table1
dans database1. Ensuite, je dois modifier certaines valeurs dans les résultats et insert values into Table1
dans database2.
Ou laissez-moi le dire autrement.
Comment puis-je convertir les données d'une table en fichiers insert script
.
sql
sql-server
sql-server-2008
ssms
Capitaine Comic
la source
la source
Réponses:
SSMS Toolpack (qui est GRATUIT comme dans la bière) a une variété de fonctionnalités intéressantes - y compris la génération d'instructions INSERT à partir de tables.
Mise à jour: pour SQL Server Management Studio 2012 (et plus récent), SSMS Toolpack n'est plus gratuit, mais nécessite des frais de licence modestes.
la source
Voici une autre méthode, qui peut être plus simple que d'installer des plugins ou des outils externes dans certaines situations:
select [whatever you need]
INTO temp.table_name
from [... etc ...]
.temp.table_name
dans l'écran "Choisir les objets", cliquez sur Suivant.INSERT
instructions résultantes apparaître dans une nouvelle fenêtre de requête.[temp.table_name]
en[your_table_name]
.drop table [temp.table_name]
.la source
temp
ici fait référence à tout schéma auquel vous avez accès. Vous pouvez soit en créer un (create schema temp
) puis le supprimer lorsque vous avez terminé, soit (mieux) simplement utiliser le schéma dans lequel vous travaillez actuellement.Dans SSMS:
Faites un clic droit sur la base de données> Tâches> Générer des scripts
Prochain
Sélectionnez "Sélectionner des objets de base de données spécifiques" et cochez la table que vous voulez scriptée, Suivant
Cliquez
Advanced >
dans la liste des options, faites défiler vers le bas et recherchez les "Types de données à script" et modifiez-les en "Données uniquement"> OKSélectionnez "Enregistrer dans une nouvelle fenêtre de requête"> Suivant> Suivant> Terminer
Les 180 lignes sont maintenant écrites comme 180 instructions d'insertion!
la source
Méthode native :
par exemple si vous avez une table
Tu peux le faire:
la source
1- Explication des scripts
A) La syntaxe pour insérer des données dans le tableau est la suivante
C) Pour obtenir les données ci-dessus à partir de la table existante, nous devons écrire la requête de sélection de manière à ce que la sortie soit sous la forme de scripts ci-dessus
D) Enfin, j'ai concaténé la variable ci-dessus pour créer un script final qui générera un script d'insertion lors de l'exécution
E)
F) Et enfin exécuté la requête ci-dessus
EXECUTE(TEXT)
G)
QUOTENAME()
fonction est utilisée pour envelopper les données de la colonne dans la citationH)
ISNULL
est utilisé parce que si une ligne contient desNULL
données pour une colonne, la requête échoue et retourneNULL
c'est pourquoi pour éviter que j'ai utiliséISNULL
I) Et a créé le sp
sp_generate_insertscripts
pour le même1- Mettez simplement le nom de la table pour laquelle vous voulez
insert script
2- Condition de filtrage si vous voulez des résultats spécifiques
la source
Il est possible de le faire via Visual Studio Explorateur d'objets SQL Server.
Vous pouvez cliquer sur "Afficher les données" dans le menu contextuel pour la table nécessaire, filtrer les résultats et enregistrer le résultat sous forme de script.
la source
À l'aide de Visual Studio, procédez comme suit
Créer un projet de type SQL Server -> Projet de base de données SQL Server
ouvrez l'explorateur de serveur sql CTL- \, CTL-S
ajoutez un serveur SQL en cliquant avec le bouton droit de la souris sur l'icône SQL SERVER. Selcet AJOUTER UN NOUVEAU SERVEUR
naviguez jusqu'au tableau qui vous intéresse
clic droit -> VOIR LES DONNÉES
Cliquez sur la cellule en haut à gauche pour tout mettre en surbrillance (ctl-A ne semble pas fonctionner)
Clic droit -> SCript
C'est fabuleux. J'ai essayé tout ce qui précède au fil des ans. Je sais qu'il existe un outil qui fera cela et bien plus encore, je ne peux pas penser à son nom. Mais c'est très cher.
Bonne chance. Je viens de comprendre cela. Je ne l'ai pas testé de manière approfondie avec des champs de texte, etc., mais il semble que cela vous amène un long chemin sur la route.
Greg
la source
Créer une table séparée à l'aide de l'instruction into Par exemple
Sélectionnez * dans Test_123 à partir de [dbo]. [Employee] où Nom comme '% Test%'
Aller à la base de données Cliquez avec le bouton droit sur la base de données Cliquez sur Générer un script Sélectionnez votre table Sélectionnez l'option advanace et sélectionnez l'attribut "Données uniquement" Sélectionnez le fichier "ouvrir dans une nouvelle requête"
Sql générera un script pour vous
la source
Vous pouvez choisir l'option `` Résultat dans un fichier '' dans SSMS et exporter votre résultat sélectionné dans un fichier et apporter vos modifications dans le fichier de résultats et enfin en utilisant BCP - Copie en bloc que vous pouvez insérer dans le tableau 1 de la base de données 2.
Je pense que pour l'insertion en masse, vous devez convertir le fichier .rpt en fichier .csv
J'espère que cela aidera.
la source
J'ai eu un problème similaire, mais je devais pouvoir créer une instruction INSERT à partir d'une requête (avec des filtres, etc.)
J'ai donc créé la procédure suivante:
Vous pouvez ensuite l'utiliser en écrivant la sortie de votre requête dans une table temporaire et en exécutant la procédure:
Remarque: Cette procédure ne convertit les valeurs qu'en une chaîne, ce qui peut donner aux données un aspect légèrement différent. Avec DATETIME par exemple, les secondes seront perdues.
la source
C'est une solution plus polyvalente (qui peut faire un peu plus que ce que demande la question), et peut être utilisée dans une fenêtre de requête sans avoir à créer un nouveau processus stocké - utile dans les bases de données de production par exemple où vous n'avez pas d'accès en écriture .
Pour utiliser le code, veuillez le modifier en fonction des commentaires en ligne qui expliquent son utilisation. Vous pouvez ensuite simplement exécuter cette requête dans une fenêtre de requête et elle imprimera les instructions INSERT dont vous avez besoin.
la source
Vous pouvez utiliser des packages de service d'intégration de serveur SQL spécialement conçus pour les opérations d'importation et d'exportation .
VS a un package pour développer ces packages si vous installez complètement Sql Server.
Services d'intégration dans Business Intelligence Development Studio
la source
Je pense que c'est également possible avec les requêtes ad hoc, vous pouvez exporter le résultat dans un fichier Excel, puis importer ce fichier dans votre objet datatable ou l'utiliser tel quel, puis importer le fichier Excel dans la deuxième base de données, jetez un œil à ce lien cela peut vous aider beaucoup.
http://vscontrols.blogspot.com/2010/09/import-and-export-excel-to-sql-server.html
la source
J'ai créé ce qui suit
procedure
:Ensuite, vous pouvez l'utiliser de cette façon:
La sortie serait quelque chose comme ça:
Si vous souhaitez simplement obtenir une plage de lignes, utilisez le
@top
paramètre ci-dessous:la source
Si vous utilisez Oracle (ou configurez l'application sur SQL Server), Oracle SQL Developer le fait pour vous. choisissez «décharger» pour une table et suivez les options (décochez DDL si vous ne voulez pas que toute la table crée des trucs).
la source
J'ai trouvé cet addon SMSMS Boost , qui est gratuit et fait exactement cela entre autres. Vous pouvez faire un clic droit sur les résultats et sélectionner les données de script comme.
la source
Vous pouvez utiliser ce Q2C.SSMSPlugin , qui est gratuit et open source. Vous pouvez cliquer avec le bouton droit de la souris et sélectionner "Exécuter la requête à la commande ... -> Requête à insérer ...". Prendre plaisir)
la source
Vous pouvez utiliser une
INSERT INTO SELECT
instruction pour insérer les résultats d'une requête de sélection dans une table. http://www.w3schools.com/sql/sql_insert_into_select.aspExemple:
la source