730 votes

Quelle est la meilleure façon de générer automatiquement les commandes INSERT pour une table SQL Server ?

Nous écrivons une nouvelle application, et lors du test, nous avons besoin d'un tas de données factices. J'ai ajouté que les données en utilisant MS Access pour le vidage des fichiers excel dans les tableaux correspondants.

Chaque si souvent, nous voulons "rafraîchir" les tableaux pertinents, ce qui signifie l'abandon de tous, re-créant et en exécutant un sauvés MS Access requête ajout.

La première partie (chute de & re-création) est un simple script sql, mais la dernière partie me fait grincer des dents. Je veux un seul script d'installation qui a un tas de plaquettes pour régénérer les données factices.

J'ai les données dans les tables. Quelle est la meilleure façon de générer automatiquement une grande liste d'instructions INSERT à partir de ce dataset?

Je suis en train de penser à quelque chose comme en CRAPAUD (pour Oracle) où vous pouvez droit-cliquez sur une grille et cliquez sur Enregistrer sous->Insert, et ce sera juste un dump d'un gros script sql où vous le souhaitez.

La seule façon que je peux penser de le faire est d'enregistrer le tableau sur une feuille excel, puis d'écrire une formule excel pour créer un INSERT pour chaque ligne, ce qui n'est certainement pas le meilleur moyen.

Je suis à l'aide de l'2008 Management Studio pour vous connecter à un Serveur SQL server 2005 bases de données.

1245voto

Mike Ritacco Points 4104

Microsoft devrait annoncer cette fonctionnalité de SSMS 2008. La fonctionnalité que vous recherchez est intégré dans la génération de Script utilitaire, mais la fonctionnalité est désactivée par défaut et doit être activée lors de la création d'une table.

C'est une course rapide à travers de générer des états d'Insertion pour toutes les données dans votre tableau, sans utiliser de scripts ou de compléments de SQL Management Studio 2008:

  1. Cliquez-droit sur la base de données et accédez à Tâches -> Générer des Scripts
  2. Sélectionnez les tables (ou l'objet) que vous souhaitez générer le script.
  3. Aller à Définir les options de script et cliquez sur le Avancée bouton.
  4. En Général catégorie, aller pour le Type de données à un script
  5. Il y a 3 options: Schéma Uniquement, Uniquement les Donnéeset le Schéma et les Données. Sélectionnez l'option appropriée, puis cliquez sur OK.

Vous obtiendrez alors l'instruction CREATE TABLE et tous les états d'INSERTION pour les données directement de la SSMS.

110voto

Shane Fulmer Points 4254

Nous utilisons cette procédure stockée - il permet de cibler les tables spécifiques et utiliser where clauses. Vous pouvez trouver le texte ici.

Par exemple, il vous permet de faire cela : pour générer des instructions INSERT de table « titres » :

54voto

noonand Points 1063

Comme mentionné par @Mike Ritacco mais mis à jour pour SSMS 2008 R2

  1. Clic droit sur le nom de base de données
  2. Cliquez sur Tâches > Générer des scripts
  3. En fonction de vos paramètres de la page d'intro peut montrer ou non
  4. Choisissez "Sélectionner des objets de base de données',
  5. Développez l'arborescence de la vue et de vérifier les tables concernées
  6. Cliquez Sur Suivant
  7. Cliquez Sur Avancé
  8. Sous Général, sélectionnez l'option appropriée pour les "Types de données de script"
  9. Terminer l'assistant

Vous obtiendrez alors toutes les instructions d'INSERTION pour les données directement de la SSMS.

28voto

BinaryHacker Points 272

Vous pouvez utiliser SSMS Tools Pack (disponible pour SQL Server 2005 et 2008). Il est livré avec une fonctionnalité permettant de générer des instructions insert.

http://www.ssmstoolspack.com/

26voto

Erikest Points 1493

J’utilise SSMS 2008 version 10.0.5500.0. Dans cette version dans le cadre de l’Assistant générer des Scripts, au lieu d’un bouton avancé, il y a l’écran ci-dessous. Dans ce cas, je voulais juste les données insérées et non créer des instructions, donc j’ai dû changer les deux propriétés cercléesScript Options

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X