Microsoft SQL Server
Opérations de base DDL dans MS SQL Server
Recherche…
Commencer
Cette section décrit une base DDL (= « D ata D ÉFINITION L angue ») commande pour créer une base de données, une table dans une base de données, une vue et enfin une procédure stockée.
Créer une base de données
La commande SQL suivante crée une nouvelle base de données Northwind
sur le serveur actuel, à l'aide du chemin d'accès C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\
:
USE [master]
GO
CREATE DATABASE [Northwind]
CONTAINMENT = NONE
ON PRIMARY
(
NAME = N'Northwind',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\Northwind.mdf' , SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB
)
LOG ON
(
NAME = N'Northwind_log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.INSTSQL2012\MSSQL\DATA\Northwind_log.ldf' , SIZE = 1536KB , MAXSIZE = 2048GB , FILEGROWTH = 10%
)
GO
ALTER DATABASE [Northwind] SET COMPATIBILITY_LEVEL = 110
GO
Remarque: Une base de données T-SQL se compose de deux fichiers, le fichier de base de données *.mdf
et son journal de transactions *.ldf
. Les deux doivent être spécifiés lors de la création d'une nouvelle base de données.
Créer une table
La commande SQL suivante crée une nouvelle table Categories
dans la base de données en cours, à l'aide du schéma dbo
(vous pouvez changer de contexte de base de données avec Use <DatabaseName>
):
CREATE TABLE dbo.Categories(
CategoryID int IDENTITY NOT NULL,
CategoryName nvarchar(15) NOT NULL,
Description ntext NULL,
Picture image NULL,
CONSTRAINT PK_Categories PRIMARY KEY CLUSTERED
(
CategoryID ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY
) ON PRIMARY TEXTIMAGE_ON PRIMARY
Créer une vue
La commande SQL suivante crée une nouvelle vue Summary_of_Sales_by_Year
dans la base de données en cours, à l'aide du schéma dbo
(vous pouvez changer le contexte de la base de données avec Use <DatabaseName>
):
CREATE VIEW dbo.Summary_of_Sales_by_Year AS
SELECT ord.ShippedDate, ord.OrderID, ordSub.Subtotal
FROM Orders ord
INNER JOIN [Order Subtotals] ordSub ON ord.OrderID = ordSub.OrderID
Cela rejoindra les tables Orders
et [Order Subtotals]
pour afficher les colonnes ShippedDate
, OrderID
et Subtotal
. Comme la table [Order Subtotals]
a un nom vide dans la base de données Northwind, elle doit être placée entre crochets.
Créer une procédure
La commande SQL suivante crée une nouvelle procédure stockée CustOrdersDetail
dans la base de données en cours, à l'aide du schéma dbo
(vous pouvez changer de contexte de base de données avec Use <DatabaseName>
):
CREATE PROCEDURE dbo.MyCustOrdersDetail @OrderID int, @MinQuantity int=0
AS BEGIN
SELECT ProductName,
UnitPrice=ROUND(Od.UnitPrice, 2),
Quantity,
Discount=CONVERT(int, Discount * 100),
ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2)
FROM Products P, [Order Details] Od
WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID
and Od.Quantity>=@MinQuantity
END
Cette procédure stockée, après sa création, peut être appelée comme suit:
exec dbo.MyCustOrdersDetail 10248
qui retournera tous les détails de la commande avec @ OrderId = 10248 (et la quantité> = 0 par défaut). Ou vous pouvez spécifier le paramètre facultatif
exec dbo.MyCustOrdersDetail 10248, 10
qui ne renverra que les commandes avec une quantité minimum de 10 (ou plus).