Microsoft SQL Server
Operazioni DDL di base in MS SQL Server
Ricerca…
Iniziare
Questa sezione descrive alcune DDL base (= "D ata D efinizione L anguage") comanda di creare un database, una tabella all'interno di un database, una vista e infine una procedura memorizzata.
Crea Database
Il seguente comando SQL crea un nuovo database Northwind
sul server corrente, utilizzando il percorso 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
Nota: un database T-SQL è composto da due file, il file di database *.mdf
e il suo log delle transazioni *.ldf
. Entrambi devono essere specificati quando viene creato un nuovo database.
Crea tabella
Il seguente comando SQL crea una nuova tabella Categories
nel database corrente, utilizzando lo schema dbo
(puoi cambiare contesto di database con 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
Crea vista
Il seguente comando SQL crea una nuova vista Summary_of_Sales_by_Year
nel database corrente, utilizzando lo schema dbo
(puoi cambiare contesto di database con 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
Questo si unirà tabelle Orders
e [Order Subtotals]
per visualizzare le colonne ShippedDate
, OrderID
e Subtotal
. Poiché la tabella [Order Subtotals]
ha uno spazio vuoto nel suo nome nel database Northwind, deve essere racchiusa tra parentesi quadre.
Crea procedura
Il seguente comando SQL crea una nuova stored procedure CustOrdersDetail
nel database corrente, utilizzando lo schema dbo
(è possibile cambiare il contesto del database con 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
Questa stored procedure, dopo che è stata creata, può essere richiamata come segue:
exec dbo.MyCustOrdersDetail 10248
che restituirà tutti i dettagli dell'ordine con @ OrderId = 10248 (e quantità> = 0 come predefinito). Oppure puoi specificare il parametro opzionale
exec dbo.MyCustOrdersDetail 10248, 10
che restituirà solo ordini con una quantità minima di 10 (o più).