Pour créer une table dans SQL Server à l'aide d'une requête :
- Dans SQL Server Management Studio, cliquez sur Nouvelle requête bouton de la barre d'outils
- Tapez ou collez un
CREATE TABLE
script (exemple ci-dessous) - Cliquez sur ! Exécuter bouton de la barre d'outils
Voici un exemple :
Le script CRÉER UNE TABLE
Voici le script SQL dans l'exemple ci-dessus :
CREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))Le script effectue les opérations suivantes :
- crée un tableau
- ajoute 3 colonnes
- définit leur type de données
- spécifie que StatusId est une colonne d'identité et que la valeur du premier enregistrement sera 1, et que la valeur de chaque enregistrement suivant sera incrémentée de 1
- spécifie que toute valeur de la colonne StatusName peut avoir une longueur maximale de 50
- spécifie que les valeurs NULL ne sont pas autorisées
- définit une valeur par défaut de la date actuelle pour la colonne DateCreated
- définit le champ StatusId comme clé primaire
Il s'agit d'un script de base qui ne crée qu'une seule petite table. Vous pouvez tout aussi bien exécuter un script qui crée une base de données entière, avec tous ses objets, données et autorisations en une seule fois.
Amélioration du scénario
Lors de la création d'objets de base de données, il est recommandé de vérifier si l'objet existe déjà ou non. Cela évite que des erreurs ne se produisent lorsque le script essaie de créer une table qui est déjà dans la base de données.
Exécuter uniquement si la table n'existe pas déjà
La ligne suivante peut être ajoutée au script ci-dessus, de sorte que le script CREATE TABLE ne s'exécute que si la table n'existe pas déjà dans la base de données (ou une table portant le même nom) :
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')
Ainsi, le script entier deviendrait :
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')CREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
Remplacer le tableau s'il existe déjà
Le script peut également être réécrit pour remplacer le tableau s'il existe déjà. Cela peut être fait en supprimant d'abord la table existante, puis en créant la nouvelle.
SQL Server 2016
SQL Server 2016 a introduit la clause DROP IF EXISTS. Ainsi, dans SQL Server 2016, nous pouvons ajouter ce qui suit en haut du script :
SUPPRIMER LA TABLE SI EXISTE [TaskTracker].[Statut]
(TaskTracker est le nom de la base de données. Status est le nom de la table).
DROP TABLE IF EXISTS [TaskTracker].[Status]CREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()), CONTRAINTE PK_Status PRIMARY KEY CLUSTERED (StatusId))
SQL Server 2014 et versions antérieures
Si vous utilisez une version antérieure de SQL Server, vous pouvez supprimer la table existante :
IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')DROP TABLE Status
Ainsi, le script entier deviendrait :
IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')DROP TABLE StatusCREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
Générer un script à partir d'une table existante
Vous pouvez générer un script SQL à partir d'une table existante via l'Explorateur d'objets dans l'interface graphique SSMS. Lorsque vous faites cela, SQL Server génère tout le code SQL à partir de la table et crée le script.
Pour ce faire, cliquez simplement sur le tableau avec le bouton droit de la souris et sélectionnez Script table as... puis suivez les invites.
Cela ne se limite pas aux tables - vous pouvez créer un script pour n'importe quel objet de base de données en utilisant la même méthode.
Si vous débutez dans la création de scripts SQL, vous pouvez essayer de créer une table à l'aide de l'interface graphique, puis générer le script SQL à partir de la table.