Quantcast
Viewing all articles
Browse latest Browse all 25

Générer le script complet des objets d’une base de données

Voici comment générer le script des objets de base de données (tables, vues, procédures stockées, fonctions, …) sans ses données, à l’aide de SQL Server Management Studio.

Commençons par un clic-droit sur la base de données à scripter :

Image may be NSFW.
Clik here to view.

Immédiatement l’Assistant Génération de Scripts SQL Server démarre :

Image may be NSFW.
Clik here to view.

Après avoir cliqué sur Suivant, nous pouvons choisir la base de données de l’instance SQL Server courante que nous voulons scripter.
Comme nous voulons recréer toute l’organisation logique qu’abrite la base de données, il nous suffit de cocher « Générer un script pour tous les objets dans la base de données »

Image may be NSFW.
Clik here to view.

Ici nous pouvons choisir quelques options pour la génération du script, notamment dès SQL Server 2008, la génération des instructions INSERT pour disposer également des données

Image may be NSFW.
Clik here to view.

Généralement c’est une étape que l’on peut sauter, car les options de script sont correctement configurées.

Ici nous pouvons choisir vers quel support nous allons générer le script, l’option « Générer un script dans une nouvelle fenêtre de requête » étant sélectionnée par défaut :

Image may be NSFW.
Clik here to view.

Cliquons sur suivant : nous obtenons un résumé du paramétrage du script

Image may be NSFW.
Clik here to view.

En cliquant sur « Terminer« , la génération débute :

Image may be NSFW.
Clik here to view.

Et dès la fin de la génération, une nouvelle fenêtre de requête est ouverte, et donne le script :

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
USE [ELSUKET]
GO
/****** Object:  Table [dbo].[TbParametres]    Script Date: 08/11/2009 23:25:27 ******/
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
/****** Object:  UserDefinedFunction [dbo].[FnGetLastSuccessfulJobExecution]    Script Date: 08/11/2009 23:25:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----------------------------------------------------------------------------------------
-- Nicolas SOUQUET - 04/08/2009 - Recherche la dernière date de bonne exécution d'un job
----------------------------------------------------------------------------------------
CREATE FUNCTION [dbo].[FnGetLastSuccessfulJobExecution]
  (@nomJob SYSNAME)
  RETURNS DATETIME
AS
BEGIN
  RETURN
  (
    SELECT DateTimeExec + 1
    FROM
    (
      SELECT MAX(CAST(STUFF(STUFF(DateExec, 12, 0, ':'), 15, 0, ':') AS DATETIME)) AS DateTimeExec
      FROM
      (
        SELECT CAST(H.run_date AS CHAR(8)) + ' ' +
            CASE LEN(CAST(H.run_time AS VARCHAR(6)))
              WHEN 5 THEN '0' + CAST(H.run_time AS CHAR(5))
              ELSE CAST(H.run_time AS CHAR(6))
            END AS DateExec
        FROM msdb.dbo.sysjobs AS J
        JOIN msdb.dbo.sysjobhistory AS H
          ON J.job_id = H.job_id
        WHERE J.name = @nomJob
        AND H.run_status = 1
        AND H.step_id = 1
      ) AS EXEC_JOB_TEST
    ) AS DER_EXEC_JOB_TEST_OK
  )
END
GO

Comme on le voit, il n’y a pas l’instruction CREATE DATABASE.
Qu’à cela ne tienne, il nous suffit de la générer aussi :

Image may be NSFW.
Clik here to view.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
USE [master]
GO
 
/****** Object:  Database [ELSUKET]    Script Date: 08/11/2009 23:34:04 ******/
CREATE DATABASE [ELSUKET] ON  PRIMARY  
( NAME = N'ELSUKET', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\ELSUKET.mdf' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON  
( NAME = N'ELSUKET_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\ELSUKET_log.LDF' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 5MB)
GO
 
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [ELSUKET].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
 
...
 
ALTER DATABASE [ELSUKET] SET DB_CHAINING OFF  
GO

ElSuket


Viewing all articles
Browse latest Browse all 25

Trending Articles