Zoeken…


Ermee beginnen

In deze sectie worden enkele basis- DDL-opdrachten (= " D ata D efinition L anguage") beschreven om een database, een tabel in een database, een view en ten slotte een opgeslagen procedure te maken.


Maak een database

De volgende SQL-opdracht maakt een nieuwe database Northwind op de huidige server, met behulp van pad 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

Opmerking: een T-SQL-database bestaat uit twee bestanden, het databasebestand *.mdf en het transactielogboek *.ldf . Beide moeten worden opgegeven wanneer een nieuwe database wordt gemaakt.


Maak een tabel

De volgende SQL-opdracht maakt een nieuwe Categories in de huidige database, met behulp van schema dbo (u kunt de databasecontext wijzigen met 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

Weergave maken

De volgende SQL-opdracht maakt een nieuwe weergave Summary_of_Sales_by_Year in de huidige database, met behulp van schema dbo (u kunt de databasecontext wijzigen met 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

Hiermee worden tabellen Orders en [Order Subtotals] ShippedDate om de kolommen ShippedDate , OrderID en Subtotal . Omdat tabel [Order Subtotals] een lege naam in de Northwind-database heeft, moet deze tussen vierkante haakjes worden geplaatst.


Procedure maken

De volgende SQL-opdracht maakt een nieuwe opgeslagen procedure CustOrdersDetail in de huidige database, met behulp van schema dbo (u kunt de databasecontext wijzigen met 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

Deze opgeslagen procedure, nadat deze is aangemaakt, kan als volgt worden ingeroepen:

exec dbo.MyCustOrdersDetail 10248

die alle ordergegevens retourneert met @ OrderId = 10248 (en aantal> = 0 als standaard). Of u kunt de optionele parameter opgeven

exec dbo.MyCustOrdersDetail 10248, 10

die alleen bestellingen retourneert met een minimumhoeveelheid van 10 (of meer).



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow