SQL Server Management Studio 2008 introduit le scriptage des données des tables.
Le scriptage se fait toujours à l’aide de l’Assistant Script, mais il faut aller chercher l’option pour en scripter également les données
Pour cet exemple, nous prenons la petite table suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | --------------------------------- -- Nicolas SOUQUET - 26/07/2009 - --------------------------------- CREATE TABLE TbParametres ( IDParametre INT NOT NULL IDENTITY CONSTRAINT PK_TbParametres_IDParametre PRIMARY KEY, nomParametre VARCHAR(20) NOT NULL CONSTRAINT UQ_TbParametres_nomParametre UNIQUE ) GO INSERT INTO dbo.TbParametres(nomParametre) VALUES ('Parametre1'), ('Parametre2'), ('Parametre3') GO SELECT IDParametre, nomParametre FROM dbo.TbParametres |
Nous voulons maintenant scripter le DDL de cette table ainsi que les données stockées par celle-ci.
Nous choisissons l’option « Générer des scripts » du menu « Tâches » que l’on trouve dans menu contextuel de la base de données contenant la table TbParametres, en l’occurence ELSUKET.
Nous obtenons la boîte suivante :
En cliquant sur « Suivant« , nous obtenons, comme avec SSMS 2005, la liste des options de script, et l’on voit que l’option « Générer le script des données » a été ajoutée :
Il suffit bien sûr de la positionner à « True » pour obtenir le script des INSERT de toutes les lignes des tables que nous allons choisir :
L’option « Générer un script dans une nouvelle fenêtre de requête » est sélectionnée par défaut.
Comme d’habitude, nous obtenons un résumé des scripts à générer :
Et peu après avoir cliqué sur « Terminer », nous obtenons le script suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | USE [ELSUKET] GO /****** Object: Table [dbo].[TbParametres] Script Date: 07/26/2009 12:10:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[TbParametres]( [IDParametre] [int] IDENTITY(1,1) NOT NULL, [nomParametre] [varchar](20) NOT NULL, CONSTRAINT [PK_TbParametres_IDParametre] PRIMARY KEY CLUSTERED ( [IDParametre] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [UQ_TbParametres_nomParametre] UNIQUE NONCLUSTERED ( [nomParametre] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO SET IDENTITY_INSERT [dbo].[TbParametres] ON INSERT [dbo].[TbParametres] ([IDParametre], [nomParametre]) VALUES (1, N'Parametre1') INSERT [dbo].[TbParametres] ([IDParametre], [nomParametre]) VALUES (2, N'Parametre2') INSERT [dbo].[TbParametres] ([IDParametre], [nomParametre]) VALUES (3, N'Parametre3') SET IDENTITY_INSERT [dbo].[TbParametres] OFF |
ElSuket
ça marche aussi avec SQL Express 2014, mais dans les options de script, il faut penser à cliquer sur le bouton Avancé, puis renseigner les types de données à inclure dans le script (par exemple schéma et données).
Une question sur cette méthode : Quelle peut être la différence entre créer une base en restaurant un Backup et créer une base en exécutant un script avec les tables et les données ?
attention à aussi activer le script des indexes…